UWSGI сбой без модуля с именем encoding Error
Я пытаюсь настроить uWSGI с помощью Pyramid, но я получаю эту ошибку при попытке uwsgi --ini-paste development.ini
Python version: 3.2.3
Сообщение об ошибке:
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 3.2.3 (default, Oct 19 2012, 20:08:46) [GCC 4.6.3]
Set PythonHome to /root/path/to/virtualenv
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named encodings
Вот что у меня есть в development.ini
[uwsgi]
socket = /tmp/uwsgi.sock
master = true
processes = 4
harakiri = 60
harakiri-verbose = true
limit-post = 65536
post-buffering = 8192
daemonize = ./uwsgi.log
pidfile = ./pid_5000.pid
listen = 256
max-requests = 1000
reload-on-as = 128
reload-on-rss = 96
no-orphans = true
log-slow = true
virtualenv = /root/path/to/virtualenv
Я полагаю, что проверил все возможное, включая следующие
echo LANG:$LANG LC_CTYPE:$LC_CTYPE
LANG:en_US.UTF-8 LC_CTYPE:
Я использую virtualenv, и uWSGI был установлен, когда среда была активной. Я также проверил, что в моей виртуальной среде lib есть пакет с именем encoding (указывающий на мою основную установку python3.2)
Я также проверил этот ответ и этот
Ранее я установил uWSGI, когда мой virtualenv не был активен, но затем я установил его правильно и удалил исполняемый файл и файлы py из предыдущей установки.
Есть ли способ получить подробные журналы, пожалуйста, дайте мне знать, если есть.
заранее спасибо
Ответы
Ответ 1
в моем случае это было в основном потому, что я использовал python 2.7 в качестве основного интерпретатора, а uwsgi выбирал плагин pyhon3. Вам может потребоваться принудительно использовать его:
= python32 плагинов
где python32
- соответствующее имя для вашего плагина pythhon3.
Вы проверили это: плагин uwsgi python3 не работает?
Ответ 2
Убедитесь, что
virtualenv = /root/path/to/virtualenv
указывает на правильный путь.
Я решил свою ошибку, установив этот туманный путь.
Ответ 3
Я также столкнулся с этой проблемой сегодня, и я попытался установить plugins=python34
, но он не работал на Ubuntu 14.04 и Python 3.4.3
Вот что я сделал, чтобы исправить это:
-
sudo pip uninstall uwsgi
-
что-то пойдет не так, когда я запустил sudo pip install uwsgi
и запустил это сначала:
sudo apt-get install python-dev
-
(sudo)pip install uwsgi
Ответ 4
Просто такая же проблема. После этого я понял, что я установил uwsgi с pip install uwsgi
в virtualenv. Как только я покинул virtualenv, я установил uwsgi на локальную систему с помощью
pip3 install uwsgi
(заметьте, я написал pip вместо pip3). Поэтому я удалил с помощью pip3 uninstall uwsgi
, и я повторил с pip install uwsgi
. Работал как Очарование.
Ответ 5
Запустите команду uwsgi (с вашими параметрами), как в следующей строке:
/<path-to-your-virtualenv-bin>/uwsgi --http :8008 --module project.wsgi --venv /<path-to-your-virtualenv> --chdir /<path-to-your-project>
Вы найдете проблемы.
Вы пропустили свой модуль param?
Ответ 6
Я обнаружил похожее сообщение об ошибке, но с изменением версии Python:
Python version: 3.4.3 (default, Nov 28 2017, 16:44:58) [GCC 4.8.4]
Это произошло из-за попытки использовать виртуальную среду python3.6, но uwsgi настраивается для python3.4. Я переустанавливал виртуальную среду, используя python3.4, и все было хорошо.
Ответ 7
Основываясь на ответе Эдварда, я вместо этого переустановил uWSGI
с pip3.6
вместо pip3
, Python 3.4.8 является Python 3 по умолчанию на сервере:
$ python3 --version
Python 3.4.8