我最近更改了我的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!'
两次执行中有什么变化?
答案 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
运行它。