无法从uwsgi加载配置

时间:2016-01-05 15:49:55

标签: python uwsgi

我在Python应用程序中进行了以下设置

server.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')

main.py

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可以定义为可调用的并用作-w?

的参数

这是一个已经由某人编写的应用程序,我正在尝试通过uwsgi提供此应用程序。

任何建议都会有所帮助

谢谢

1 个答案:

答案 0 :(得分:9)

我无法从uwsgi'加载配置。错误也是。根据{{​​3}}:

  

请事先确保您的应用程序文件中的任何app.run()调用都在if __name__ == '__main__':块内或移动到单独的文件中。只是确保它没有被调用,因为如果我们将该应用程序部署到uWSGI,它将始终启动我们不想要的本地WSGI服务器。

我将app.run()移至if __name__ == '__main__':,问题就解决了。也许您可以尝试将FlaskApp.start_server()放在if __name__ == '__main__':下。