我正在处理一个包含多个包的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
您尝试过$ heroku ps:scale web=1
吗?
如果这不起作用,你能分享你的Procfile吗?
它不工作的原因是.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