将Procfile移至项目根目录会使Django应用程序崩溃

时间:2019-04-24 11:21:28

标签: python django heroku gunicorn

我正在尝试用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的原始位置不是项目的根目录。

编辑 这是目录结构的图片: Where Procfile used to be Where Procfile is now

Procfile曾经位于“ my_site / my_site / my_site”下,但随后我将其移至“ my_site /”下。这不是项目的根目录吗?

0 个答案:

没有答案