Django Gunicorn没有名为error

时间:2017-08-08 08:11:34

标签: django gunicorn

我的项目目录结构如下所示:

enter image description here

我的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

2 个答案:

答案 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”