簡體   English   中英

無法從 uwsgi 加載配置

[英]unable to load configuration from uwsgi

我的 Python 應用程序中有以下設置

服務器.py

from bots.flask_app import app
from bots.flask_app.api import api
from bots.flask_app.public import public
from bots import db

from bots.commons.helpers.flask.json.serializer import make_alternative_encoder

from flask_debugtoolbar import DebugToolbarExtension

import logging

import bots.commons.managers.configuration as ConfigurationManager

logger = logging.getLogger()


#######
# Public functions
#######
def setup_db_and_app():
    # Flask application bootstrap
    config = ConfigurationManager.get_flask_rest_config()
    app.config.update(config)
    logger.debug('Flask configuration object: %s', app.config)

    # MongoDB connection initialization
    db.init_app(app)

    # Debug toolbar enabled only if Flask in debug mode
    if ConfigurationManager.get_raw_flask_rest_config()['flask']['debug']:
        DebugToolbarExtension(app)

    # Replace the serializer with the custom one (for ObjectId and DateTime serialization)
    app.json_encoder = make_alternative_encoder(app.json_encoder)

    # Register the components
    app.register_blueprint(api)
    app.register_blueprint(public)


def start_server():
    setup_db_and_app()
    logger.debug('Registered routes: %s', app.url_map)
    app.run(host='0.0.0.0')

主文件

import bots.flask_app.server as FlaskApp

import bots.commons.managers.log as LogManager

# Logging initialization
LogManager.init_logging()

# Defined in server.py
FlaskApp.start_server()

我正在嘗試查看此塗抹器是否可以由 uwsgi 提供服務,如下所示

uwsgi --socket 0.0.0.0:8080 --protocol=http -w main

輸出如下

INFO:werkzeug: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
INFO:werkzeug: * Restarting with stat
unable to load configuration from uwsgi

我的問題 1. 我在哪里可以找到導致此問題的配置? 2、main.py能否定義為callable,作為-w的參數?

這是一個已經由某人編寫的應用程序,我正在嘗試通過 uwsgi 提供此應用程序。

任何的意見都將會有幫助

謝謝

我也有“無法從 uwsgi 加載配置”錯誤。 根據flask uwsgi docs

請提前確保您可能在應用程序文件中進行的任何 app.run() 調用都在if __name__ == '__main__':塊內或移動到單獨的文件中。 只要確保它沒有被調用,因為如果我們將該應用程序部署到 uWSGI,這將始終啟動我們不想要的本地 WSGI 服務器。

我將app.run()移動到if __name__ == '__main__': ,問題就解決了。 也許您可以嘗試將FlaskApp.start_server()放在if __name__ == '__main__':下。

我參加聚會有點晚了,當我忘記從app.run()中刪除debug=True時遇到了這個錯誤。 不能用 uwsgi 運行調試服務器是有道理的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM