如何在Heroku中为Python创建Procfile?

时间:2014-02-23 05:08:47

标签: python python-2.7 heroku flask

在网上搜索答案后,我似乎无法找到一个可靠的答案。目前,我的目录设置方式如下:

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进入一个不断重启连接的循环时,我尝试在虚拟环境中手动设置端口导出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)

此外,我已经杀死了所有正在使用的枪支进程并尝试再次开始领班工作......任何想法可能会发生什么?

这是我的runserver.py

from intro_to_flask import app

app.run(debug=True)

1 个答案:

答案 0 :(得分:2)

在gunicorn上运行应用程序时,不要使用启动开发服务器的相同启动脚本。所有gunicorn需要知道的是从哪里导入应用程序。在你的情况下,我认为你在Procfile中想要的是这样的:

web: gunicorn --pythonpath app intro_to_flask:app

不确定这是否会按原样运行,或者您是否需要进行微调。这个想法是你需要为gunicorn提供定义应用程序的包或模块,然后是冒号,然后是应用程序实例符号。

我希望这会有所帮助。