【问题标题】:Django, Gunicorn, and Settings DirDjango、Gunicorn 和设置目录
【发布时间】:2015-01-08 14:12:12
【问题描述】:

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

project/
    app1/
    app2/
    project/
        settings/
            __init__.py
            base.py
            production.py

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

wsgi.py

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings.production")

production.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"]

base.py 是一些静态和媒体路由的默认设置。

问题

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

编辑

新贵错误:gunicorn: Worker failed to boot.

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

【问题讨论】:

  • 重启 gunicorn 时会发生什么?你能发布你的新贵文件吗?
  • @dm03514 它立即终止并出现错误。我用两个有趣的更新了 OP。
  • @dm03514 我有一个额外的文件夹...有一个额外的项目文件夹包含项目...
  • 您的项目文件夹中有 wsgi.py 文件吗?如果是,打开它并检查那里的设置路径。

标签: python django nginx gunicorn


【解决方案1】:

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

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

gunicorn --env DJANGO_SETTINGS_MODULE=settings.production [project_name].wsgi

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

它对我有用。

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 2015-02-26
    • 2019-01-18
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2016-01-04
    相关资源
    最近更新 更多