将python部署到Heroku-Web进程未能绑定到$PORT



我有这个python代码要部署到Heroku:

import flask
import pandas as pd

def create_app():
app = flask.Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
"""
Index page view handler.
:return: rendered index.html template
"""
return flask.render_template('index.html')
@app.route('/data', methods=['GET', 'POST'])
def data():
"""
Data view handler
:return: JSON object of the data CSV file
"""
data = pd.read_csv('task_data.csv')
context = {
'sensor_data': data.to_dict(orient='list')
}
return flask.jsonify(context)
return app

if __name__ == "__main__":
app = create_app()
app.config['TEMPLATES_AUTO_RELOAD'] = True
# serve the application on port 7410
app.run(host='0.0.0.0', port=7410)

Procfile

web: python main.py

在我上传文件后,我现在在日志视图中得到了这个错误:

2020-02-26T14:08:32.485820+00:0 heroku[web.1]:状态已从更改启动时崩溃

2020-02-26T14:08:38.283732+00:0 heroku[web.1]:正在使用启动进程命令python main.py

2020-02-26T14:08:41.705572+00:0应用程序[web.1]:*服务烧瓶应用程序"主"(延迟加载(

2020-02-26T14:08:41.705637+00:0 app[web.1]:*环境:生产

2020-02-26T14:08:41.705644+00:0应用[web.1]:警告:这是开发服务器。不要在生产部署中使用它。

2020-02-26T14:08:41.705705+00:0应用[web.1]:使用生产WSGI服务器。

2020-02-26T14:08:41.705763+00:0 app[web.1]:*调试模式:关闭

2020-02-26T14:08:41.722252+00:0 app[web.1]:*运行于http://0.0.0.0:7410/(按CTRL+C退出(

2020-02-26T14:09:38.524175+00:0 heroku[web.1]:状态已从更改开始崩溃

2020-02-26T14:09:38.453425+00:0 heroku[web.1]:错误R10(启动timeout(->Web进程未能在的60秒内绑定到$PORT启动

2020-02-26T14:09:38.453485+00:0 heroku[web.1]:正在使用停止进程SIGKILL

2020-02-26T14:09:38.509347+00:0 heroku[web.1]:进程已退出状态137

请告知如何修复此错误?

正如我所知,您应该从环境变量中获取端口,因此它将是:

port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)

可以在这里找到。还有一个类似的问题。希望这能说明问题。

相关内容

最新更新