我正在进行标准的Django项目设置:
projectname/
manage.py
projectname/
appnameone/
appnametwo/
...
settings.py
wsgi.py
(我实际上并没有将它们称为这些名称,但它是文件夹名称相似性的准确表示)
在wsgi.py中我们有:
import os, sys
sys.path.append('/srv/www/projectname')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "projectname.settings")
非常标准的东西,都是从startproject
和startapp
命令生成的。有时这实际上工作正常(通常在我刚刚完成Apache重启之后)。但有时它不起作用,我得到500错误。当我这样做时,我检查了apache日志,我每次都会看到这条线:
ImportError: Could not import settings 'myproject.settings' (Is it on sys.path?)
堆栈回溯将此属性归结为:
Exception occurred processing WSGI script '/srv/www/projectname/projectname/wsgi.py'
这对我来说都没有任何意义,因为我没有引用myproject.settings
,但Python有时(有时只是)似乎试图加载它。
任何人都有任何提示可以找出这个错误的myproject
来自哪里并将其投入地狱之火?为什么做Apache重载会暂时解决这个问题,只是为了重新浮出水面?