Фатальная ошибка Python: Py_Initialize: не удается получить модуль кодировки locale Ошибка not Found Error: нет модуля с именем ‘encodings’

#django #apache #mod-wsgi

#django #apache #mod-wsgi

Вопрос:

У меня возникли проблемы с запуском моего приложения 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 на github исправление заключается в том, чтобы указать конфигурацию на среду.

На данный момент я уверен, что указываю домашнюю настройку 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>
  

Комментарии:

1. Пожалуйста, проверьте версии python, используемые для настройки mod_wsgi, и версию, которую ваш проект использует в virtualenv. Я получил эту ошибку, когда в них было несоответствие. Исправление, которое решило проблему для меня.