Обновление uwsgi до python3 .7 для исправления ошибки ImportError: Нет модуля с именем 'encodings' - PullRequest
0 голосов
/ 06 января 2020

Честно говоря, я понятия не имею, что я делаю, поэтому будьте нежны со мной Я пытаюсь использовать uwsgi для запуска моего django приложения на aws экземпляре Ubuntu. У меня есть виртуальная среда с python3 .7, но когда я пытаюсь запустить uwsgi. Я получаю это в логах:

*** Starting uWSGI 2.0.14 (64bit) on [Sun Jan  5 14:51:32 2020] ***
compiled with version: 5.4.0 20160609 on 20 October 2016 05:56:34
os: Linux-4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018
nodename: ip-172-31-41-139
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
chdir() to /home/ubuntu/web/graff
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 3804
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /home/ubuntu/web/graffuwsgi.sock fd 3
Python version: 3.5.2 (default, Oct  8 2019, 13:06:37)  [GCC 5.4.0 20160609]
Set PythonHome to /home/ubuntu/.virtualenvs/graff
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Вот мой uwsgi.conf

# file: /etc/init/graffuwsgi.conf
description "uWSGI server for graff"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec /usr/local/bin/uwsgi --home /home/ubuntu/web/graff/ --socket /home/ubuntu/web/graffuwsgi.sock --chmod-socket=666 --module=graff.wsgi --pythonpath /home/ubuntu/web -H /home/ubuntu/.virtualenvs/graff --logto /home/ubuntu/web/logs/graffuwsgi.log --chdir=/home/ubuntu/web/graff --chmod-socket=666

Кажется, python3 .5 просто больше не работает. Я чувствую, что мне пришлось заменить python3 .5 на 3.7 в нескольких местах в последнее время, чтобы исправить различные ошибки, и у меня в голове есть мысль, что если я смогу заставить uwsgi запустить python3 .7 вместо 3.5, то это решит эту ошибку тоже. В любом случае, любая помощь очень ценится.

1 Ответ

0 голосов
/ 06 января 2020

Похоже, что ваш uwsgi скомпилирован с другой python версией, убедитесь, что вы скомпилировали с python 3.5

PYTHON=python3.5 uwsgi --build-plugin "/usr/src/uwsgi/plugins/python python35"
mv python35_plugin.so /usr/lib/uwsgi/plugins/python35_plugin.so
chmod 644 /usr/lib/uwsgi/plugins/python35_plugin.so

, вы можете следовать этому руководству:

https://www.paulox.net/2017/04/04/how-to-use-uwsgi-with-python3-6-in-ubuntu/

...