首页 > 解决方案 > 将 Procfile 移动到项目根目录会使 Django 应用程序崩溃

问题描述

我正在尝试使用 Heroku 部署我的 Django 项目,并且我知道我的 Procfile 位于错误的位置。但是,当我将它移动到正确的目录时,应用程序无法启动。

我最初在我的应用程序目录而不是我的项目根目录中创建了 Procfile,当我尝试将 Procfile 移动到根目录时,我从 wsgi.py 收到关于我的设置文件的 ModuleNotFoundError(我正在使用设置文件夹来分隔开发和生产设置文件,所以我把它做成了一个模块,仅供参考)。

这是我的 Procfile:

web: gunicorn my_site.my_site.wsgi --log-file -

这是我的 wsgi 文件:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_site.settings.production_settings')

application = get_wsgi_application()

这是我尝试在本地运行 heroku 时遇到的错误:

ModuleNotFoundError: No module named 'my_site.settings'

如果我将另一个目录级别添加到我的设置文件的位置(在 wsgi.py 中):

'my_site.my_site.settings.production_settings'

然后我收到一个关于在我的设置中的 INSTALLED_APPS 中找不到应用程序的新错误。似乎我更改 Procfile 的位置以某种方式弄乱了我项目中的所有目录扩展名,这没有任何意义。如果我将 Procfile 保存在原始位置,一切正常,除了我无法在 heroku 上启动 dyno,因为 Procfile 的原始位置不是根项目目录。

编辑 这是目录结构的图片: Procfile 曾经在 哪里 Procfile 现在在哪里

Procfile 曾经位于“my_site/my_site/my_site”下,但后来我将它移到了“my_site/”下。这不是项目根目录吗?

标签: pythondjangoherokugunicorn

解决方案


推荐阅读