Estou tentando fazer com que um ambiente uwsgi funcione corretamente no Arch, para executar meu aplicativo Flask a partir de um virtualenv.
Eu instalei o uwsgi, o nginx e o virtualenv e todos eles funcionam em um ponto.
No entanto, estou vendo o seguinte erro no uwsgi
log:
Traceback (most recent call last):
File "./interface.py", line 1, in <module>
from flask import flask
ImportError: No module named flask
unable to load app 0 (mountpoint='') (callable not found or import error)
unable to find "application" callable in file index.py
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: 4795)
spawned uWSGI worker 1 (pid: 4796, cores: 1)
--- no python application found, check your startup logs for errors ---
[pid: 4796|app: -1|req: -1/1] 192.168.9.201 () {40 vars in 664 bytes} [Thu Dec 26 08:01:56 2013] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)
Isso indica que não é possível carregar o módulo do frasco, o que, acredito, se deve a um uwsgi.conf
incorreto:
[uwsgi]
uid = http
gid = http
plugin = python2
socket = %drun/%n.sock
chdir = /srv/http/example/htdocs
master = True
pidfile = %drun/%n.pid
logto = %dlog/%n.log
venv = /srv/http/example/htdocs
pyhome = /srv/http/example/htdocs
module = interface
callable = my_app
no-site = true
Alguém pode me dizer o que eu deveria estar definindo venv
e pyhome
, como eu acho que é aí que está o problema? Ou, de fato, se eu deveria estar colocando os dois?
Também relevante, é quando eu executo o seguinte a partir de um terminal, posso importar o módulo do frasco sem erros:
$ pwd
/srv/http/example/htdocs
$ . bin/activate
(htdocs) $ python
Python 2.7.6 (default, Nov 26 2013, 12:52:49)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>>
Estou apenas definindo venv
em uwsgi.conf
incorretamente?