繁体   English   中英

UWSGI的烧瓶:找不到Python应用程序

[英]Flask with UWSGI: Python application not found

我遵循Linode指南来设置Flask应用程序中的UWSGI,并且在我收到“未找到uWSGI错误Python应用程序”之前,尝试将我的应用程序而不是示例应用程序放到一切正常。

我在/srv/www/xxx.com/xxx/中的文件结构为:

app/
    __init__.py
uwsgi.py

__init__.py文件包含用于运行应用程序的行:

if __name__ == '__main__':
    app.run()

然后uwsgi.py导入应用程序:

#!flask/bin/python

from app import app

if __name__ == "__main__":
    app.run(debug = False)

当我手动尝试运行python uwsgi.py该应用似乎可以正常运行,因此没有错误或错误的导入。 如果我将uwsgi.py的内容更改为以下内容(来自示例):

import os
import sys

sys.path.append('/srv/www/example.com/application')

os.environ['PYTHON_EGG_CACHE'] = '/srv/www/example.com/.python-egg'

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                    ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

该应用程序似乎正在运行,因此UWSGI和nginx可以正常运行并运行uwsgi.py文件,但是当我将其指向我的应用程序uwsgi.py无法运行。

我的uwsgi配置:

<uwsgi>
    <plugin>python</plugin>
    <socket>/run/uwsgi/app/xxx.com/xxx.com.socket</socket>
    <pythonpath>/srv/www/xxx.com/application/xxx/</pythonpath>
    <app mountpoint="/">

        <script>uwsgi</script>

    </app>
    <master/>
    <processes>4</processes>
    <harakiri>60</harakiri>
    <reload-mercy>8</reload-mercy>
    <cpu-affinity>1</cpu-affinity>
    <stats>/tmp/stats.socket</stats>
    <max-requests>2000</max-requests>
    <limit-as>512</limit-as>
    <reload-on-as>256</reload-on-as>
    <reload-on-rss>192</reload-on-rss>
    <no-orphans/>
    <vacuum/>
</uwsgi>

我的nginx配置:

server {
        listen          80;
        server_name     $hostname;
        access_log /srv/www/xxx.com/logs/access.log;
        error_log /srv/www/xxx.com/logs/error.log;

        location / {
            uwsgi_pass      unix:///run/uwsgi/app/xxx.com/xxx.com.socket;
            include         uwsgi_params;
            uwsgi_param     UWSGI_SCHEME $scheme;
            uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;

        }

        location /static {
            root   /srv/www/xxx.com/public_html/static/;
            index  index.html index.htm;

        }

}

这是uwsgi错误日志:

added /srv/www/xxx.com/application/xxx/ to pythonpath.
- unable to load app 0 (mountpoint='/') (callable not found or import error)
- *** no app loaded. going in full dynamic mode ***
- *** uWSGI is running in multiple interpreter mode ***
- spawned uWSGI master process (pid: 21982)
- spawned uWSGI worker 1 (pid: 21990, cores: 1)
- set cpu affinity for worker 1 toTue Sep 23 16:51:19 2014 -  0Tue Sep 23 16:51:19 2014 -
- spawned uWSGI worker 2 (pid: 21991, cores: 1)
- *** Stats server enabled on /tmp/stats.socket fd: 14 ***
- set cpu affinity for worker 2 toTue Sep 23 16:51:19 2014 -  0Tue Sep 23 16:51:19 2014 -

任何人都可以指出我在哪里犯错? 我花了数小时尝试各种解决方案,但似乎没有任何效果,我必须省略了一些重要的内容,但找不到它。

尝试添加<callable>application</callable>

暂无
暂无

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

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