Неустранимая ошибка Python: Py_Initialize: невозможно получить кодировку локали ModuleNotFoundError: нет модуля с именем 'encodings' - PullRequest
1 голос
/ 20 марта 2019

У меня проблемы с запуском моего приложения django с помощью mod_wsgi.

Вот лог-сообщение

[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Python home /var/www/myproject/myenv.
[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Initializing Python.
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

После проверки других проблем в SO и на странице github mod_wsgi, исправление для этого состоит в том, чтобы заставить config указывать на среду.

На данный момент я уверен, что указываю домашнюю настройку python на правильный путь среды

Я также выполнил sys.prefix, и это указывает на /var/www/myproject/myenv

Я также уверен, что использовал правильную версию Python для сборки mod_wsgi и создания virtualenv для своего проекта.

Я тоже смог запустить pip install -r requirements.txt.

Вот мой конфигурационный файл

LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so

WSGIRestrictEmbedded On

WSGIPythonHome /var/www/myproject/myenv

WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py process-group=sgcdjango.com
WSGIDaemonProcess sgcdjango.com python-home=/var/www/myproject/myenv
WSGIProcessGroup myapp.com
WSGIApplicationGroup %{GLOBAL}

<Directory /var/www/myproject/myapp/>
    <Files wsgi.py>
        Allow from all
        Require all granted
    </Files>
</Directory>

Alias /static/ /var/www/myproject/static/

<Directory /var/www/myproject/static>
    Require all granted
</Directory>
...