我的项目目录结构如下所示:
我的wsgi文件:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
application = get_wsgi_application()
和我的manage.py文件:
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
在我的设置中.py我有:
WSGI_APPLICATION = 'config.wsgi.application'
我将项目路径添加到python中,其中包含以下内容:
export PYTHONPATH=/home/ec2-user/amm_inovision_backend:$PYTHONPATH
我正在尝试运行gunicorn命令,其中我的manage.py文件为:gunicorn amm_inovision_backend.config.wsgi:application
但它引发了我错误没有名为amm_inovision_backend.config.wsgi的模块
如果我改为运行gunicorn config.wsgi:application
,则不会抛出名为amm_inovision_backend.config.settings
我做错了什么?
注意:在截图中它是amm_ino_backend但实际上它是生产中的amm_inovision_backend
答案 0 :(得分:1)
当你想要使用gunicorn时,你必须在你的虚拟环境中安装gunicorn
所以你不需要导出任何python路径,你只需要在安装Django的virtual-env上找到gunicorn的路径,或者你可以添加虚拟环境的路径而不是项目文件。
您还需要先修改wsgi.py
您必须将此
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
替换为
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
你的命令必须是这样的:
/path/to/.virtual-envs/your-env/bin/gunicorn config.wsgi:application
答案 1 :(得分:1)
使用:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
application = get_wsgi_application()
请注意“CONFIG.SETTINGS”