[英]unable to load configuration from uwsgi when attempting to run flask app via uwsg
我有以下 uwsgi app.ini 文件:
[uwsgi]
wsgi-file = wsgi.py
callable = app
socket = :5000
processes = 5
threads = 2
master = true
chmod-socket = 660
vacuum = true
die-on-term = true
wsgi.py 内容:
from app import start
start()
最后是 app.py,它是 Flask 应用程序本身(很长,所以我只会放相关的):
# instantiate the app
app = Flask(__name__, static_url_path='', static_folder='static', template_folder='templates')
app.config.from_object(__name__)
# enable CORS
CORS(app, resources={r'/*': {'origins': '*'}})
@app.route('/')
def index():
return render_template('index.html')
... all sort of methods here ...
def start():
print("STARTING !!!")
app.run(host='0.0.0.0')
if __name__ == '__main__':
start()
所有文件都在同一个文件夹中。 当我运行uwsgi app.ini
我得到这个:
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
unable to load configuration from uwsgi
为什么是这样?
谢谢你的帮助
快速浏览会发现两个问题。 首先, uwsgi
和app.run()
不兼容。 当您使用 Flask 开发环境时,您将使用后者。 uwsgi
需要保存 Flask 实例的对象。 按照惯例,这是app
,但您可以使用不同的名称(并配置uwsgi
以查找不同的名称)。
这是第二个问题。 uwsgi
加载wsgi.py
(导致app.run()
这是越来越您最什么,你看到的,然后它寻找app
。但是,因为你想导入app
,该app
是wsgi.py
有ISN” t Flask 实例。
要做的简单的事情是(在 uwsgi.ini 中)替换
file=wsgi.py
和
module=app:app
那应该绕过对start()
的调用,让uwsgi
处理事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.