Как установить conda env с uwsgi и супервизором?

Я пытаюсь запустить приложение Flask, используя conda env с uwsgi и супервизором.

Мне удалось решить первую проблему относительно пути к скрипту 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

и моя конфигурация супервайзера

[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

Когда я запускаю 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

Итак, я думаю, что conda env не установлен. Как я могу установить это?


person jul    schedule 12.01.2016    source источник


Ответы (3)


Мне пришлось установить PATH в файле конфигурации моего супервизора.

environment=PATH=/home/me/Development/miniconda/envs/myflaskapp/bin
person jul    schedule 12.01.2016

Я знаю, что уже поздно, но это тоже должно сработать

command=bash -c "source /path_to_conda/bin/activate && source activate env_name && program_to_run --config=config_path command"

person Aman Verma    schedule 09.11.2017

Вы используете тег -H при запуске uwsgi из командной строки, чтобы установить путь 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

Вы можете найти свой путь к virtualenv с помощью

which python

В командной строке с активированным virtualenv.

person Peter Trotman    schedule 12.01.2016
comment
Может быть, вы могли бы попробовать активировать venv с помощью супервизора перед выполнением uwsgi? Например: command = . /path/to/venv/bin/activate && /home/me/Development/miniconda/envs/myflaskapp/bin/uwsgi /home/me/Development/flask/myflaskapp/myflaskapp.ini - person Peter Trotman; 12.01.2016
comment
Проблема в том, что для сценария активации conda требуется параметр (имя среды), даже в некорневых средах, поэтому uwsgi попытается вызвать сценарий активации без параметра, и это не удастся. - person Korijn; 01.03.2016
comment
Я думаю, вы должны установить env следующим образом: . активировать myEnv - person yourstruly; 12.08.2017