我使用foreman run在本地运行正常,当我使用runserver.py
执行python runserver.py
文件时。当我把它推到Heroku时,它只是崩溃了。我甚至对我的procfile进行了更改:web: python runserver.py ${PORT}
以便Heroku绑定到一个端口号,但无济于事......我已经在这个问题上待了将近3天了。首先是我的Procfile
,现在是Heroku ......任何帮助都会很高兴得到赞赏。另外,我在这个项目中使用带有Flask框架的Python - 我遇到了Heroku前进,但它似乎只适用于RoR应用程序..
2014-02-24T02:24:50.146153+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2014-02-24T02:24:51.323561+00:00 heroku[web.1]: Process exited with status 137
2014-02-24T02:24:51.333621+00:00 heroku[web.1]: State changed from starting to crashed
2014-02-24T02:24:51.334368+00:00 heroku[web.1]: State changed from crashed to starting
2014-02-24T02:24:55.793531+00:00 heroku[web.1]: Starting process with command `python runserver.py`
2014-02-24T02:24:57.117683+00:00 app[web.1]: * Running on http://127.0.0.1:5000/
2014-02-24T02:24:57.117683+00:00 app[web.1]: * Restarting with reloader
2014-02-24T02:23:43.987388+00:00 heroku[api]: Deploy c55f7b6 by shaunktw@gmail.com
2014-02-24T02:23:43.987478+00:00 heroku[api]: Release v8 created by shaunktw@gmail.com
2014-02-24T02:25:56.204701+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2014-02-24T02:25:56.204929+00:00 heroku[web.1]: Stopping process with SIGKILL
2014-02-24T02:25:57.495657+00:00 heroku[web.1]: Process exited with status 137
Procfile:
web: python runserver.py ${PORT}
runserver.py:
from intro_to_flask import app
app.run(debug=True)
答案 0 :(得分:7)
我找到了这个问题的答案......基本上我必须绑定一个端口并指定我正在使用的主机:
在我的runserver.py文件中,我使用:
修改它import os
from intro_to_flask import app
port = int(os.environ.get("PORT", 5000))
app.run(debug=True, host='0.0.0.0', port=port)
这可能不是最优雅的方式。但它确实有效。
答案 1 :(得分:4)
您需要指定$PORT
而不是${PORT}
web: python runserver.py $PORT
答案 2 :(得分:0)
这个link给出了一个使用Heroku
启动Flask应用程序的简单示例