我重构了一个已经部署(并且运行良好)的 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 我的新文件夹结构,以便它知道要运行的正确设置文件。
编辑:
Upstart 错误:gunicorn:Worker 启动失败。
第二个错误:导入错误:没有名为 project.wsgi 的模块
请您参考如下方法:
您在 wsgi.py 中的设置似乎不起作用。您可以尝试我指定设置模块的方式:
在您的项目目录(包含 manage.py 的目录)下,使用以下命令运行 gunicorn:
gunicorn --env DJANGO_SETTINGS_MODULE=settings.production [project_name].wsgi
将 [project_name] 替换为您自己的。
它对我有用。
