我正在尝试使用内置的
wsgi
运行我的 django 应用程序。我的目录结构如下:
/project/
-/project/
- settings.py
- wsgi.py
- urls.py
-/app/
这是提供的
wsgi.py
文件,我对其进行了一些修改。
import os
from django.core.wsgi import get_wsgi_application
# used to be crowdlabel.settings
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
application = get_wsgi_application()
if __name__ == "__main__":
application.run()
运行
python project/wsgi.py
时,出现找不到模块 project
的错误。为了解决这个问题,我改变了os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
。这样做会在 get_wsgi_application()
函数中产生一个新错误,ModuleNotFoundError: No module named 'app'
。
我很困惑,所以如果有经验的人可以建议我做错了什么,我将不胜感激。请注意,该应用程序在测试服务器上运行良好。
wsgi.py
不应从命令行运行,而应从 WSGI 容器运行。最受欢迎的是gunicorn。尝试:
pip install gunicorn
gunicorn project.wsgi
更多信息这里。