Heroku / gunicorn / flask应用程序说“正在使用连接”

时间:2013-12-05 23:48:26

标签: python heroku flask gunicorn

我有一个在本地运行正常的Flask应用程序,但当我推送到Heroku时,我收到错误消息:

* Running on http://127.0.0.1:5000/
[INFO] Starting gunicorn 18.0
[ERROR] Connection in use: ('0.0.0.0', 8163)

我尝试了this question中的解决方案,其中gunicorn和werkzeug互相争斗,但在我的主应用程序文件(__name__ == "__main__")中添加run.py块并没有解决我的问题错误。

This SO post建议确保我的流程全部清理完毕。我这样做但它仍然无法正常工作,所以我实际上删除了我的整个heroku应用程序并进行了修复,它仍然给出了同样的错误。

我的run.py文件如下:

#!pl_env/bin/python
from app import app

if __name__ == "__main__":
  app.run(debug=True, port=33507)

# [33507 is the Flask port on Heroku]

我的Procfile是:     web:gunicorn run:app

应用中的__init__.py文件是:

from flask import Flask
import os
from flask.ext.login import LoginManager

app = Flask(__name__)
app.config.from_object('config')

lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'

from app import views

视图中有应用程序的内容逻辑,但我不认为那里有任何东西可以搞乱gunicorn。以下是views.py导入以防万一:

from flask import Flask, render_template, flash, redirect
from flask.ext.login import login_required, login_user
from app import app, lm
from forms import LoginForm

我绝对不知道现在要去哪里找出这个连接错误。关于为什么它似乎认为我已经在使用0.0.0.0的任何想法?

谢谢

莫妮卡

编辑:我使用foreman start在本地运行应用程序,它在0.0.0.0:5000中干净利落地工作,所以我认为我遇到了Heroku问题

EDIT2:我故意打破了我的观看流程 - 制作了一个内部无限引用 - 并推动它看看会发生什么。我得到了预期的错误日志,解除了它,推动了回滚,现在它正在运行。我完全不知道为什么它应该起作用,除非可能以预期的方式打破我的枪支连接。如果有人对这个谜团有任何解释,我会爱他们。

1 个答案:

答案 0 :(得分:0)

app.run(host='0.0.0.0') 

可能会解释here

所解释的伎俩