gpt4 book ai didi

python - 将 Flask 应用程序部署到 Heroku

转载 作者:行者123 更新时间:2023-12-05 07:59:58 28 4
gpt4 key购买 nike

我正在尝试在 Heroku 上使用 Flask 开发我的第一个“大型”应用程序,并且我正在尝试结合这里的基本教程:https://devcenter.heroku.com/articles/python使用此处的说明:http://flask.pocoo.org/docs/patterns/packages/#larger-applications .它在本地与“foreman start”一起工作,但是当我推送到 Heroku 时,我收到一个错误,指出正在使用错误的端口:

Starting process with command python run.py 2012-12-04T23:45:18+00:00 app[web.1]: * Running on http://127.0.0.1:5000/ 2012-12-04T23:45:18+00:00 app[web.1]: * Restarting with reloader 2012-12-04T23:45:23+00:00 heroku[web.1]: Error R11 (Bad bind) -> Process bound to port 5000, should be 33507 (see environment variable PORT)

我对这一切都不熟悉,但看起来它正试图在 Heroku 上“本地”运行。我尝试了各种组合,但无法正常工作。我现在非常简单的代码是(该应用程序称为“pml”):

目录:/pml

简介:

web: python run.py

运行.py:

from pml import app
app.run(debug=True)

目录:/pml/pml/

__初始化__.py

from flask import Flask
app = Flask(__name__)

import pml.views

View .py

from pml import app

@app.route('/')
def index():
return 'Hello World!'

最佳答案

我没有使用过 Heroku,但对我来说,他们似乎为 Flask 保留了一个端口,特别是 33507。看起来它会尝试使用一个环境变量,我不确定如何在 Heroku 中设置.好消息是您可以告诉 Flask 使用哪个端口。

试试这个:

app.run(debug=True, port=33507)

看起来像这样将 PORT 添加到 heroku 中的环境中:

heroku config:add PORT=33507

应该只需执行其中一项。我会尝试第一个,因为对我来说,这是解决问题的直接方法。

编辑
阅读您帖子中的文章后,我明白了问题出在哪里。

port = int(os.environ.get('PORT', 5000))

该行说,如果已设置,则从环境中获取 PORT 的值,否则使用 5000。我不确定为什么他们不允许它从 5000 开始运行,如果那是在他们的文档中,但我会尝试这个改变:

port = int(os.environ.get('PORT', 33507))

关于python - 将 Flask 应用程序部署到 Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849974/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com