gunicorn连接用于python烧瓶

时间:2016-02-02 05:28:47

标签: python heroku flask gunicorn

我最近更改了我的Heroku Python Flask应用程序来自' 小应用程序'格式化为“简单包”'格式来自flask documentation(将app.py中的所有内容解耦为单独的子目录)

使用

正确运行应用程序
> python runserver.py

然而,执行

gunicorn runserver:app --log-file=- 

输出:

"Starting gunicorn .... connection in use error" (loops forever)

我的runserver.py配置是:

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

__ init__.py配置:

import os
from flask import Flask
from flask import render_template
app = Flask(__name__)
import views

view.py配置:

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

两次执行中有什么变化?

1 个答案:

答案 0 :(得分:4)

问题是您在导入runserver的任何时候运行您的应用程序。你只希望在直接执行时发生这种情况。

from re3 import app

if __name__ == '__main__':
    app.run(debug=True)

编辑:

gunicorn的用法是

$ gunicorn [OPTIONS] APP_MODULE

当你运行gunicorn时,它会导入APP_MODULE。在您的情况下,您已指定runserver。因此,虽然你自己不进口它,但是gunicorn会这样做。在gunicorn可以运行app之前,runserver运行它。