Django在Apache上使用mod_wsgi:settings的导入错误

2024-09-29 23:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Apache2服务器上用mod wsgi服务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运行此项目时,我在日志中收到一个内部服务器错误消息:

^{pr2}$

这是我的管理.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来运行这个项目时,一切都还可以。在

这是我的系统路径看起来像:

/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?,我尝试了答案中提到的方法,但没有奏效。在


Tags: pywsgivenvliblocallibraryframeworkvirtualenvs
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:03

您需要在您的管理.py文件(使用pdb进行此操作)。我认为这是因为你有一个像这样的目录结构'parent_dir/mysite/mysite/settings/'和系统路径有一个条目“parent_dir”。所以系统试图在parent_dir/mysite中找到settings模块。改变你的管理.py调试

import os
import sys

if __name__ == "__main__":
    import ipdb; ipdb.set_trace()
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.local")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

相关问题 更多 >

    热门问题