Назад | Перейти на главную страницу

Конфигурация uwsgi - нет модуля с именем site

Я пытаюсь заставить uwsgi работать в сочетании с nginx для приложения фляги. Это ini-файл 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

В каталоге / var / www / test У меня есть этот файл 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()

Когда я запускаю его, я получаю эту ошибку:

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

Кто-нибудь может сказать мне, где я ошибаюсь, пожалуйста?

В моем случае, будучи новичком в uwsgi, я не понимал, где по умолчанию находятся virtualenvs (в каталоге ~ / .virtualkenvs). Для моего приложения moztrap подходящей конфигурацией оказалась:

[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

Я возился с модулем и virtualenv, и эта комбинация сработала для меня. Обратите внимание, что файл wsgi.py содержит следующее.

"""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()

Я также попытался загрузить uwsgi с помощью apt-get, затем pip, но в конце концов не нужно было создавать символическую ссылку, поэтому я предполагаю, что он использует один установленный apt-get.

В основном благодаря следующим (и нескольким другим, которых я не могу поблагодарить из-за отсутствия очков репутации):