【发布时间】:2015-11-07 04:26:40
【问题描述】:
我正在使用 mod_wsgi 为 Apache2 服务器上的 Django 站点提供服务。这是我的 mysite/mysite 目录的样子:
(mysite_venv)➜ mysite tree mysite -I "*.pyc"
mysite
├── __init__.py
├── db.sqlite3
├── settings
│ ├── __init__.py
│ ├── base.py
│ └── local.py
├── urls.py
└── wsgi.py
当我使用 python manage.py runmodwsgi 运行此项目时,我在日志中收到一条内部服务器错误消息:
[wsgi:error] [pid 8900] ImportError: No module named mysite.settings.local
[mpm_prefork:notice] [pid 8898] AH00170: caught SIGWINCH, shutting down gracefully
这是我的 manage.py 的样子:
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.local")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
但是当我像这样更改目录 mysite/mysite 时:
(mysite_venv)➜ mysite tree mysite -I "*.pyc"
mysite
├── __init__.py
├── base.py
├── db.sqlite3
├── local.py
├── urls.py
└── wsgi.py
并将代码 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.local") 更改为
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.local")
服务器运行正常!
我该如何解决这个问题?
PS:当我使用python manage.py runserver 运行这个项目时,一切正常。
这是我的 sys.path 的样子:
/Users/gagaxiaolong/PycharmProjects/mysite
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python27.zip
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/plat-darwin
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/plat-mac
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/plat-mac/lib-scriptpackages
/Users/gagaxiaolong/.virtualenvs/mysite_venv/Extras/lib/python
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/lib-tk
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/lib-old
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/site-packages
/Users/gagaxiaolong/.virtualenvs/mysite_venv/lib/python2.7/site-packages/IPython/extensions
9个月前有一个类似的问题:How to debug basic issues configuring django to be served with apache and mod-wsgi?,我尝试了答案中提到的方法但不起作用。
【问题讨论】:
-
如果您正在运行多个 Django 站点,请确保您阅读了blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html 并注意
wsgi.py文件中有关使用os.environ.setdefault()的警告。
标签: python django apache settings mod-wsgi