在网上搜索答案后,我似乎无法找到一个可靠的答案。目前,我的目录是这样设置的:
flaskapp
-app
-intro_to_flask
+__init__.py
+config.py
+routes.py
+forms.py
-runserver.py
-Readme.md
-bin
-include
-lib
-view
Procfile
requirements.txt
所以我不确定
Procfile
是否设置正确......我是这样设置的:web: gunicorn --pythonpath app runserver
但是,当我运行 foreman start...heroku 进入一个不断重新启动连接的循环时,我尝试在虚拟环境 export PORT=5001 中手动设置端口,但我仍然遇到相同的错误:
Running on http://127.0.0.1:5000/
12:21:20 web.1 | * Restarting with reloader
12:21:20 web.1 | 2014-02-22 12:21:20 [34532] [INFO] Starting gunicorn 18.0
12:21:20 web.1 | 2014-02-22 12:21:20 [34532] [ERROR] Connection in use: ('0.0.0.0', 5001)
另外,我已经杀死了所有正在使用的 gunicorn 进程,并尝试再次运行 foreman start ......任何想法可能会发生什么?
这是我的
runserver.py
from intro_to_flask import app
app.run(debug=True)
最佳答案
当您在 gunicorn 上运行您的应用程序时,您不会使用启动开发服务器的相同启动脚本。所有 gunicorn 需要知道的是从哪里导入应用程序。在您的情况下,我认为您在 Procfile 中想要的是这样的:
web: gunicorn --pythonpath app intro_to_flask:app
不确定这是否会正常工作,或者您是否需要进行细微的调整。这个想法是你需要给 gunicorn 定义应用程序的包或模块,然后是一个冒号,然后是应用程序实例符号。
我希望这有帮助。
关于python - 如何在 Heroku 中为 Python 创建 Procfile?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21964452/