Django、Gunicorn 和设置目录

Col*_*len 3 python django nginx gunicorn

我重构了一个已经部署(并且运行良好)的 Django 项目,以使用设置目录而不是 settings.py 文件。项目结构如下图:

project/
    app1/
    app2/
    project/
        settings/
            __init__.py
            base.py
            production.py
Run Code Online (Sandbox Code Playgroud)

服务器已停止工作。我收到 502 错误。我相信这是因为gunicorn 找不到设置文件了。我尝试更改我的 wsgi 文件以使用生产而不是设置。

wsgi.py

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings.production")
Run Code Online (Sandbox Code Playgroud)

生产.py

from .base import *
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
TEMPLATE_DEBUG = False
ALLOWED_HOSTS = ["site.com", "ip"]
Run Code Online (Sandbox Code Playgroud)

base.py对于一些静态和媒体路由来说几乎是默认的。

问题:

我如何告诉gunicorn我的新文件夹结构,以便它知道要运行的正确设置文件。

编辑:

暴发户错误:gunicorn: Worker failed to boot.

第二个错误:Import Error: No module named project.wsgi

Vam*_*mei 5

看来您在 wsgi.py 中的设置不起作用。您可以尝试我指定设置模块的方式:

在您的项目目录(包含manage.py的目录)下,使用以下命令运行gunicorn:

gunicorn --env DJANGO_SETTINGS_MODULE=settings.production [project_name].wsgi
Run Code Online (Sandbox Code Playgroud)

将 [project_name] 替换为您自己的。

这对我有用。