繁体   English   中英

尝试通过 uwsg 运行 Flask 应用程序时无法从 uwsgi 加载配置

[英]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

为什么是这样?

谢谢你的帮助

快速浏览会发现两个问题。 首先, uwsgiapp.run()不兼容。 当您使用 Flask 开发环境时,您将使用后者。 uwsgi需要保存 Flask 实例的对象。 按照惯例,这是app ,但您可以使用不同的名称(并配置uwsgi以查找不同的名称)。

这是第二个问题。 uwsgi加载wsgi.py (导致app.run()这是越来越您最什么,你看到的,然后它寻找app 。但是,因为你想导入app ,该appwsgi.py有ISN” t Flask 实例。

要做的简单的事情是(在 uwsgi.ini 中)替换

file=wsgi.py

module=app:app

那应该绕过对start()的调用,让uwsgi处理事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM