Configuração do Uwsgi - Nenhum módulo chamado site

1

Estou tentando fazer com que o uwsgi trabalhe em combinação com o nginx para uma aplicação de frascos. Este é o arquivo ini do UWSGI:

[uwsgi]
socket = 127.0.0.1:8001
processes = 4
module = run:manager
virtualenv = /var/www/test/venv
chdir = /var/www/test
logto = uwsgi.log

No diretório / var / www / test eu tenho este arquivo run.py

from flask.ext.migrate import Migrate, MigrateCommand
from flask.ext.script import Manager
from app import app, db

if __name__ == "__main__":
    migrate = Migrate(app, db)
    manager = Manager(app)
    manager.add_command('db', MigrateCommand)
    manager.run()

Quando eu executo, recebo este erro:

Set PythonHome to /var/www/test/                                                                         
ImportError: No module named site

Alguém pode me dizer onde estou errado por favor?

    
por Jimmy 04.03.2014 / 18:42

1 resposta

1

No meu caso, sendo novo no uwsgi, eu não entendi onde o virtualenvs acabou por padrão (no diretório ~ / .virtualkenvs). Para o meu aplicativo moztrap, a configuração apropriada acabou sendo:

[uwsgi]
vhost = true
plugins = python
socket = /tmp/testa.sock
master = true
enable-threads = true
module = wsgi:application
processes = 2
wsgi-file = /home/ianh/moztrap/moztrap/deploy/wsgi.py
virtualenv = /home/ianh/.virtualenvs/moztrap
chdir = /home/ianh/moztrap
touch-reload = /home/ianh/moztrap/reload

Eu mexi com o módulo e virtualenv, e esta é a combinação que funcionou para mim. Observe que o arquivo wsgi.py contém o seguinte.

"""WSGI entry-point for MozTrap."""

import os
import sys

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, base_dir)

# Set default settings and instantiate application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "moztrap.settings.default")

from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()

Eu também tentei carregar o uwsgi usando apt-get e depois pip, mas no final não precisei fazer um symlink - então eu prefiro usar o apt-get instalado.

Obrigado principalmente ao seguinte (e a alguns outros que a falta de pontos de repetição não me permite agradecer):

  • link - conseguiu o soquete, mas precisou ajustar
  • link - uso correto de home / virtualenv para apontar para .virtualenv / project dir
por 03.08.2014 / 00:49