Nginx & uWSGI: ImportError: Nenhum módulo chamado site

4

Estou recebendo um erro: ImportError: No module named site de acordo com o meu log do uWSGI.

test_proj.ini:

[uwsgi]
chdir = /home/%n/app
module = %n.wsgi
home = /home/%n/app/venv
master = true
processes = 10
chmod-socket = 664
socket = /home/%n/uwsgi/socket
daemonize = /home/%n/uwsgi/log
pidfile = /home/%n/uwsgi/pid

nginx:

server {
        listen 8888;
        server_name 192.168.88.187;

        # Set up django static file serving
        location /static {
                alias /home/test_proj/app/static/;
        }

        # pass all non-static request to uWSGI
        location / {
                uwsgi_pass unix:///home/test_proj/uwsgi/socket;
                include uwsgi_params;
        }
}

pip freeze:

Django==1.7.1
django-braces==1.4.0
django-cors-headers==0.13
django-dynamic-settings==1.1.0
django-oauth-toolkit==0.7.2
django-uuidfield==0.5.0
djangorestframework==3.0.0
oauthlib==0.7.2
psycopg2==2.5.4
six==1.8.0

Eu também tenho o uWSGI instalado globalmente. Estou faltando alguma coisa no arquivo ini ou é por causa das configurações do nginx? Eu tentei combinações diferentes do arquivo ini .

Eu também tentei adicionar no-site = true dentro do ini , mas aprendi que ele não deve ser adicionado ao arquivo ini , mesmo que ele elimine o erro e produza um erro diferente.

Eu também segui este tutorial , mas ainda sem sorte.

Obrigado.

    
por Koralarts 05.12.2014 / 01:43

3 respostas

10

O motivo pelo qual não estava funcionando foi porque instalei o uwsgi usando o comando regular pip . Desde que eu tenho tanto Python 2 & 3 na máquina, preciso instalar uwsgi usando pip3 .

O comando que eu executei: pip3 install uwsgi

    
por 10.02.2015 / 19:14
1

O motivo pelo qual você está recebendo este erro é porque os módulos (site, os, etc) não puderam ser encontrados no ambiente virtual especificado na diretiva home. Usar a versão correta do pip pode ter funcionado para você, mas apenas porque corrige seu problema virtualenv.

    
por 18.02.2015 / 01:07
1

Se você estiver na vov, então execute o uwsgi usando o caminho completo do uwsgi onde ele reside dentro da vev como /usr/venv/bin/uwsgi . O uwsgi padrão pode estar residindo em outro lugar.

Tente which uwsgi para localizá-lo.

    
por 15.11.2017 / 10:15