在 conda env 中使用主管和 uwsgi 问题

Issue using supervisor and uwsgi in conda env

我正在尝试 运行 使用 uwsgi + supervisor + nginx 的 Flask 应用程序。

uwsgi 安装在 conda env 中,我可以 运行 我的应用程序没有任何问题没有监督,即如果我 运行 (我的 conda env 激活):

uwsgi --ini /home/me/Development/flask/myflaskapp/myflaskapp.ini

使用以下配置:

/home/me/Development/flask/myflaskapp/myflaskapp.ini

[uwsgi]
chmod-socket = 666
socket = /home/me/Development/flask/myflaskapp/run/myflaskapp.sock
module = wsgi
callable = app

vim /etc/nginx/sites-available/myflaskapp

server {
    listen 8000;
    server_name localhost;
    client_max_body_size 50M;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/me/Development/flask/myflaskapp/run/myflaskapp.sock;
    }
}

现在我创建一个主管配置文件:

/etc/supervisor/conf.d/uwsgi-myflaskapp.conf

[program:uwsgi-myflaskapp]
command=/home/me/Development/miniconda/envs/myflaskapp/bin/uwsgi /home/me/Development/flask/myflaskapp/myflaskapp.ini
autostart=true
autorestart=true
stdout_logfile=/home/me/Development/flask/myflaskapp/log/uwsgi-myflaskapp.log
redirect_stderr=true
exitcodes=0

我用

启动主管(在系统范围内安装)
sudo service supervisor start

并使用

加载配置文件
sudo supervisorctl reload

但我在日志文件中收到以下错误:

ImportError: No module named wsgi

有什么建议吗?

这是完整的日志:

[uWSGI] getting INI configuration from /home/me/Development/flask/myflaskapp/myflaskapp.ini
*** Starting uWSGI 2.0.12 (64bit) on [Mon Jan 11 19:12:14 2016] ***
compiled with version: 4.8.4 on 11 January 2016 10:54:59
os: Linux-3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015
nodename: roquefort
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /
detected binary path: /home/me/Development/miniconda/envs/myflaskapp/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 63047
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /home/me/Development/flask/myflaskapp/run/myflaskapp.sock fd 3
Python version: 2.7.11 |Continuum Analytics, Inc.| (default, Dec  6 2015, 18:08:32)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x18001e0
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72760 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
ImportError: No module named wsgi
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 worker 1 (and the only) (pid: 24671, cores: 1)

我在 /home/me/Development/flask/myflaskapp/myflaskapp.ini 中添加了 wsgi.py 文件的路径

chdir = /home/me/Development/flask/myflaskapp

以便它现在可以找到 wsgi。