Django设置文件路径

0 投票
2 回答
513 浏览
提问于 2025-04-18 18:22

我正在尝试创建一个自定义的Django模板。这个项目模板的结构如下:

project_name/
  docs/
  reqs/
  src/
    ...
    settings/
      ...
      dev.py
      prod.py
    manage.py
    wsgi.py
    ...
  Procfile
  requirements.txt

我在弄清楚怎么在manage.pywsgi.py中正确地包含设置文件时遇到了困难。我应该写成src.settings.dev还是settings.dev呢?

目前,

manage.py中有os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.dev")(在本地运行时)

wsgi.py中有os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.settings.prod")。(在heroku上运行时)

这两种写法在执行命令./manage.py runservergunicorn src.wsgi时都能正常工作。

我想知道,决定设置路径的是执行的文件还是项目的路径?希望能得到一些帮助。

2 个回答

0

其实,这和这两者都没关系。设置文件是一个普通的Python模块,所以它必须像其他Python模块一样可以被导入。这就意味着它的路径必须在PYTHONPATH里面。

在你的情况下,可能是有某个地方把“/path/to/project_name”和“/path/to/project_name/src”都添加到了PYTHONPATH里,这可能是通过设置环境变量,或者在脚本里面直接修改了sys.path

0

我了解到,当给manage.py提供设置文件时,它会尝试在两个地方寻找这些设置,

1. 在它自己所在的路径(也就是manage.py的路径)

2. 还有在PYTHONPATH这个环境变量指定的路径

撰写回答