Установить PythonHome в / var / www / virtualenvs / myenv / ImportError: нет модуля с именем site
Мне очень тяжело работать с python3.4 и virtualenv.
проект работает хорошо локально, но после его развертывания я получаю 502 Bad Gateway. Я посмотрел в журналы uwsgi, я увидел это:
uwsgi socket 0 bound to UNIX address /var/www/mysite/live.sock fd 6 Python version: 2.7.9 (default, Mar 1 2015, 13:01:26) [GCC 4.9.2] Set PythonHome to /var/www/virtualenvs/myenv/ ImportError: No module named site
мои настройки uwsgi:
[uwsgi] socket = /var/www/mysite/live.sock chdir = /var/www/mysite module = project.wsgi:application virtualenv = /var/www/virtualenvs/myenv/ buffer-size = 4096 processes = 40 home = /var/www/virtualenvs/myenv/ plugin = python34 env = DJANGO_SETTINGS_MODULE=project.settings enable-threads = True single-interpreter = True uid = www-data gid = www-data vacuum = True disable-logging = true logger = file:/var/www/mysite/log/uwsgi_err.log
я что-то пропустил в отношении python3? Любая помощь высоко ценится
- Django делает QueryDict из данных JSON
- Django DecimalField генерирует «результат квантования имеет слишком много цифр для текущего контекста» ошибка при сохранении
- Ошибка «Требуется параметр redirect_uri»
- django регистрация / вход в систему с использованием @login_required decorator
- Использование наследования модели и определение ошибки с ошибкой, не связанной с нулевым значением
uWSGI использует плагин python для запуска вашего приложения. К сожалению, версия python, используемая для сборки плагина uWSGI и версии python из вашего приложения virtualenv, должна соответствовать (на первой и второй цифрах).
По умолчанию плагин python встроен в двоичный файл uWSGI. И в этом случае он построен с использованием python 2.7.
Вы можете исправить это двумя возможными способами. Сначала нужно скомпилировать uWSGI с использованием другой версии python, второй – создать uWSGI без плагина python и отдельно построить плагин python (с использованием другой версии python).
Для каждого из них вам понадобятся источники uWSGI.
Для создания uWSGI с другой версией python вам нужно всего лишь:
PYTHON=python3.4 make
Для создания uWSGI без плагина python (и некоторых других плагинов):
make nolang
Для создания uWSGI-плагинов python (у вас должен быть uWSGI без встроенных плагинов)
PYTHON=python3.4 ./uwsgi --build-plugin "plugins/python python34"
Теперь вы можете скопировать плагин (ы) в какое-либо глобальное местоположение (например, /usr/local/lib/uwsgi
), заменить двоичный файл uWSGI в системе и запустить ваш сервер uWSGI с помощью:
plugins-dir = /usr/local/lib/uwsgi plugin = python35
Чтобы запустить экземпляр uWSGI с загруженным плагином для python 3.5
- Увеличение элемента в списке словарей с помощью карты и лямбда
- Эффективный способ найти анаграммы предложений из словаря?
- Django: Как перенаправить на страницу, откуда возникла форма?
- не удалось обновить (PUT) и удалить (удалить) данные в django-piston
- Пусть Sum () возвращает 0 вместо ничего
- Состояние ошибки ответа Django JSON
- Полный proto слишком большой для сохранения, очищенных переменных
- поиск и экспорт данных в формате .csv с использованием django
- Как определить get_queryset, get_context_data в представлении django?
- Тест Django manage.py
- Django – Как использовать собственный тег шаблона с проверками «if» и «else»?