gunicorn用于python烧瓶的连接

Joh*_*ohn 0 python heroku flask gunicorn

最近,我根据烧瓶文档将了Heroku Python Flask应用程序从“ 小型应用程序 ”格式更改为“简单包”格式(将所有内容解耦到单独的子目录中)app.py

应用程序使用以下命令正确运行

> python runserver.py
Run Code Online (Sandbox Code Playgroud)

但是,执行

gunicorn runserver:app --log-file=- 
Run Code Online (Sandbox Code Playgroud)

输出:

"Starting gunicorn .... connection in use error" (loops forever)
Run Code Online (Sandbox Code Playgroud)

我的runserver.py配置为:

 from re3 import app
 app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

__init__.py配置:

import os
from flask import Flask
from flask import render_template
app = Flask(__name__)
import views
Run Code Online (Sandbox Code Playgroud)

view.py配置:

from re3 import app
@app.route('/')
def index():
    return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)

两次处决有什么变化?

dir*_*irn 6

问题是您可以随时runserver导入运行的应用程序。您只希望直接执行该操作即可。

from re3 import app

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

编辑:

Gunicorn的用法是

$ gunicorn [OPTIONS] APP_MODULE
Run Code Online (Sandbox Code Playgroud)

当您运行gunicorn时,它会导入APP_MODULE。在您的情况下,您已指定runserver。因此,虽然您自己不导入它,但gunicorn却可以。而在此之前gunicorn可以运行apprunserver运行它。