cri*_*rix 19 python heroku flask
我正在尝试使用Heroku上的Flask开发我的第一个"大型"应用程序,我正在尝试将基本教程组合在一起:https://devcenter.heroku.com/articles/python,其中包含以下说明:http:// flask.pocoo.org/docs/patterns/packages/#larger-applications.它在本地使用"foreman start",但当我推送到Heroku时,我收到一个错误,错误的端口正在使用中:
使用命令启动过程
python run.py2012-12-04T23:45:18 + 00:00 app [web.1]:*运行于http://127.0.0.1:5000/2012-12-04T23:45:18 + 00:00 app [web.1]:*重启reloader 2012-12-04T23:45:23 + 00:00 heroku [web.1]:错误R11(Bad bind) - >绑定到端口5000的进程,应该是33507(参见环境变量PORT)
我对这一切都很陌生,但看起来它正试图在Heroku上"本地"运行.我尝试了各种各样的组合,但无法让它发挥作用.我现在非常简单的代码是(该应用程序称为"pml"):
目录:/ pml
Procfile:
web: python run.py
Run Code Online (Sandbox Code Playgroud)
run.py:
from pml import app
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
目录:/ pml/pml /
__init__.py
from flask import Flask
app = Flask(__name__)
import pml.views
Run Code Online (Sandbox Code Playgroud)
view.py
from pml import app
@app.route('/')
def index():
return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
sbe*_*rry 31
我没有使用Heroku,但对我来说,看起来他们有一个Flask的保留端口,特别是33507.看起来它会尝试使用环境变量,我不知道如何在Heroku中设置.好消息是你可以告诉Flask使用哪个端口.
试试这个:
app.run(debug=True, port=33507)
Run Code Online (Sandbox Code Playgroud)
看起来像将pORT添加到heroku中的env就像这样:
heroku config:add PORT=33507
Run Code Online (Sandbox Code Playgroud)
你应该只需要做其中一个.我会尝试第一个,因为它对我来说是解决问题的直接方法.
编辑
阅读您帖子中的文章后,我会看到问题出在哪里.
port = int(os.environ.get('PORT', 5000))
Run Code Online (Sandbox Code Playgroud)
该行说,PORT如果设置了,从环境中获取值,否则使用5000.我不知道为什么他们不允许它从5000运行,如果这是他们的文档中的内容,但我会尝试这个更改:
port = int(os.environ.get('PORT', 33507))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17830 次 |
| 最近记录: |