uWSGI e env virtual do python

4

Estou tentando usar o uWSGI com um env virtual para usar o rastreador de erros do Trac nele.

Instalei o uwsgi em todo o sistema via pip.

Em seguida, eu instalei o trac em um virtualenv

$ virtualenv venv
$ . venv/bin/activate
$ pip install trac

Eu, então, escrevi um script simples de configuração do uWSGI:

[uwsgi]
master = true
processes = 1
socket = localhost:3032

home = /srv/http/trac/venv/
no-site = true

gid = www-data
uid = www-data
env = TRAC_ENV=/srv/http/trac/projects/my_project
module = trac.web.main:dispatch_request

Mas quando tento lançá-lo, ele falha:

$ uwsgi --http :8000 --ini /etc/uwsgi/vassals-available/my_project.ini --gid www-data --uid www-data
...
Set PythonHome to /srv/http/trac/venv/
...
*** Operational MODE: single process ***
ImportError: No module named trac.web.main
unable to load app 0 (mountpoint='') (callable not found or import error)

Acho que o uWSGI não está usando o env virtual. Quando dentro do env virtual, posso importar o trac.web.main sem ter um ImportError.

Como posso fazer isso? Obrigado

    
por Nicolas Appriou 28.04.2014 / 09:51

3 respostas

8

Tente adicionar isso ao seu arquivo ini:

plugins = python
virtualenv = /path/to/your/venv

Você também pode precisar do router_basicauth para lidar com a autenticação.

    
por 29.05.2014 / 10:00
1

Para usar o virtualenv ativado, você pode usar este snippet de configuração em uwsgi.ini :

; If VIRTAL_ENV is set then use its value to specify the virtualenv directory
if-env = VIRTUAL_ENV
virtualenv = %(_)
endif =
    
por 06.02.2015 / 03:29
0

Pode tentar:

 which uwsgi

Ele diz qual comando uwsgi ele usa para executar seu código. Certifique-se de que está usando uwsgi do seu virtualenv, e não de alguma instalação do sistema.

    
por 07.05.2014 / 19:16