python - 将 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/”下。这不是项目根目录吗?
解决方案
推荐阅读
- forms - Codeigniter 4 表单验证不起作用
- javascript - 检查 Firestore 实时更改
- arrays - 如何用jq获取数组的索引
- java - 如何通过忽略某些属性和子元素顺序来比较 2 个 json
- docker - Quarkus:测试容器内置的原生镜像
- python-3.x - 如何嵌套带有 IF 语句的 For 循环以返回新列表?
- linux - Epson JavaPOS ADK for linux 在与 eclipse 和 java 代码一起使用时出错
- python - 如何使用 BeautifulSoup 逐行打印文本?
- c# - Xamarin.Forms 中的 FCM 通知仅适用于 android 模拟器
- html - 使用 HtmlAgilityPack 检查另一个 Html 标记中是否存在 Html 标记