如何使用uwsgi和supervisor设置conda env?

jul*_*jul 6 flask uwsgi supervisord conda

我正在尝试使用带有uwsgi和主管的conda env来运行Flask应用程序.

我设法解决了关于wsgi脚本路径的第一个问题,但我找不到如何设置conda env.

我的uwsgi配置文件/home/me/Development/flask/myflaskapp/myflaskapp.ini

[uwsgi]
module = wsgi
master = true
process = 2
chmod-socket = 666
chdir = /home/me/Development/flask/myflaskapp
socket = /home/me/Development/flask/myflaskapp/run/myflaskapp.sock
callable = app
vacuum = true
Run Code Online (Sandbox Code Playgroud)

我的主管配置是

[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
Run Code Online (Sandbox Code Playgroud)

当我通过主管开始uwsgi时,我得到了

*** Operational MODE: single process ***
Traceback (most recent call last):
  File "./wsgi.py", line 1, in <module>
    from myflaskapp import app
  File "./myflaskapp/__init__.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask
Run Code Online (Sandbox Code Playgroud)

所以我想我没有设置conda env.我怎么设置它?

Pet*_*man 2

从命令行启动 uwsgi 时使用 -H 标签来设置 Python 路径

http://uwsgi-docs.readthedocs.org/en/latest/Options.html#virtualenv

因此,在您的情况下,在主管配置中,将命令更改为:

command=/home/me/Development/miniconda/envs/myflaskapp/bin/uwsgi -H /path/to/your/virtualenv /home/me/Development/flask/myflaskapp/myflaskapp.ini
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令找到您的 virtualenv 路径

which python
Run Code Online (Sandbox Code Playgroud)

在激活 virtualenv 的命令行上。