Flask:无法将应用程序部署到 Heroku,没有名为“app”的模块

时间:2021-06-15 17:18:54

标签: python flask heroku

我正在尝试将我的应用部署到 Heroku。我的文件夹结构是这样的:

enter image description here

我的所有代码都写在 __init__.py 中,我只需在根目录中键入 flask run 即可运行它。这工作正常。但是,我尝试将此应用程序部署到 Heroku,但出现以下错误:

remote: -----> Discovering process types
remote:
remote:  !     Push failed: cannot parse Procfile.
remote:  !     Please try pushing again.
remote:  !     If the problem persists, see https://help.heroku.com/ and provide Request ID 266c0fb8-18bd-a262-5d3a-4355cd83bb02.
remote:
remote:
remote: Verifying deploy...
remote:
remote: !       Push rejected to submission-form.
remote:

我的 Procfile 包含这个:web: gunicorn app:app 而我的 app.py 包含这个:

from app import app
app.run(debug=True)

如果我尝试运行 python app.py,我的模块会被报告丢失:

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from app.app import app
  File "D:\Gatsby\submission\flask-tailwindcss-starter\app\__init__.py", line 4, in <module>
    from contentful_management import Client
ModuleNotFoundError: No module named 'contentful_management'

尽管它们在那里并且在我使用 flask run 时运行良好。这里出了什么问题?我如何解决这个问题,以便我可以推动这个应用程序部署在 Heroku 上?我猜这与我的procfile有关。

编辑:My repo is attached here, if it helps

1 个答案:

答案 0 :(得分:0)

您正在从 app.app 模块调用应用程序。首先没有模块 app.app 并且没有定义应用程序。 试试这个:

from app import create_app
app = create_app()
app.run(debug=True)