【问题标题】:Multiple packages Python, Heroku not picking up Procfile file多个包Python,Heroku没有拾取Procfile文件
【发布时间】:2026-01-08 09:25:05
【问题描述】:

我正在开发一个包含多个包的 python Flask 项目。文件夹结构如下:

root
|--programs
   |--package_1
      |--__init__.py
      |--app.py
   |--package_2
      |--__init__.py
      |--pythonfiles2.py
   |--package_2
      |--__init__.py
      |--pythonfiles3.py
   |--main.py
   |--.env
|--docs
|--requirements.txt
|--runtime.txt
|--Procfile

我在Heroku上托管项目,main.py文件如下:

from package_1.app import flask_app

if __name__ == "__main__":
   flask_app.run(debug=True)

如上所示,我在其中一个包中初始化flask_app,然后将其导入主文件。此外,该项目的 Procfile 位于programs 目录中。

但是,当我部署应用程序时,我收到此错误: No web processes running

有人知道怎么回事吗?

谢谢!

编辑:Procfile 包含:web gunicorn programs.main:flask_app

【问题讨论】:

  • Procfile 必须在根目录中,而不是在子文件夹中。
  • @basicmojo 我在programs 文件夹内外都试过了。还是不行

标签: python flask heroku python-packaging


【解决方案1】:

它不起作用的原因是.env 文件的位置。与直觉相反,我需要将.env 文件存储在programs 目录之外。

即新建文件夹结构为:

root
|--programs
   |--package_1
      |--__init__.py
      |--app.py
   |--package_2
      |--__init__.py
      |--pythonfiles2.py
   |--package_2
      |--__init__.py
      |--pythonfiles3.py
   |--main.py
|--docs
|--requirements.txt
|--runtime.txt
|--Procfile
|--.env

【讨论】:

    【解决方案2】:

    你试过$ heroku ps:scale web=1吗?

    如果这不起作用,您可以分享您的 Procfile 吗?

    【讨论】:

    • 我已经试过了,关于这篇文章:*.com/questions/41804507/… ...仍然没有运气!另外,只是共享 Procfile
    • Procfile 中的冒号和空格是否在正确的位置?即使是那些也会产生问题。也许尝试将其粘贴到您的 Procfile 中而不是 web: gunicorn main:app 并将您的 main.py 文件放在与 Procfile 和 requirements.txt 相同的目录中。
    最近更新 更多