Я пытаюсь переключить сайт django с работы в python 3.6 на python 3.7 в Ubuntu 16.04.Для этого я создал новую среду по тому же пути, что и старый, и переустановил все зависимости.
Сервер Apache, однако, выходит из строя со следующей ошибкой:
Fatal Python error: Py_Initialize: Unable to get the locale encoding ModuleNotFoundError: No module named 'encodings'
Какая ошибка, после небольшого исследования, кажется, связана с конфигурацией WSGI, согласно:
Например, вы не можете заставить mod_wsgi использовать виртуальную среду Python, созданную с использованием Python 3.5, когда mod_wsgi изначально был скомпилирован для Python 2.7.Это потому, что библиотека Python для установки Python, с которой она была изначально скомпилирована, напрямую связана с модулем mod_wsgi.Другими словами, Python встроен в mod_wsgi.Когда используется mod_wsgi, он не запускает программу Python из командной строки для запуска интерпретатора и, следовательно, почему вы не можете заставить его использовать другую установку Python.
from: https://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html
благодаря: Django Apache wsgi меняет версию Python
Операция, описанная в приведенном выше примере, закончилась простым стиранием настроек и начинанием с нуля.Это кажется мне немного экстремальным, так как мне кажется, что я должен просто переустановить / переконфигурировать mod-wsgi для работы с python3.7
В этом смысле я удалил и переустановилоба, libapache2-mod-wsgi-py3 и mod_wsgi.Первый, однако, просто перенастраивается на 3.6 автоматически, как показано ниже:
root@server1:~# dpkg -S mod_wsgi
libapache2-mod-wsgi-py3: /usr/lib/apache2/modules/mod_wsgi.so
libapache2-mod-wsgi-py3: /usr/lib/apache2/modules/mod_wsgi.so-3.6
и установка mod_wsgi завершается неудачно с:
RuntimeError: The 'apxs' command appears not to be installed or is not executable.
Как я могу пересобрать wsgi с python 3.7