Python3 .8 Flask wsgi на apache2 error: «Fatal Python error: ... нет модуля с именем 'encodings'" - PullRequest
1 голос
/ 08 февраля 2020

Я пытаюсь настроить flask веб-сайт в Ubuntu 18.04, используя python3 .8. Я следую нескольким учебникам по настройке всего, но я достиг точки остановки, когда я сталкиваюсь со следующей ошибкой в ​​/var/log/apache2/error.log

[Sat Feb 08 18:29:08.089321 2020] [wsgi:warn] [pid 16992:tid 140217694870464] (2)No such file or directory: mod_wsgi (pid=16992): Unable to stat Python home Xeplin/venv. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
Python path configuration:
  PYTHONHOME = 'Xeplin/venv'
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = '/usr/bin/python3'
  sys.base_prefix = 'Xeplin/venv'
  sys.base_exec_prefix = 'Xeplin/venv'
  sys.executable = '/usr/bin/python3'
  sys.prefix = 'Xeplin/venv'
  sys.exec_prefix = 'Xeplin/venv'
  sys.path = [
    'Xeplin/venv/lib/python38.zip',
    'Xeplin/venv/lib/python3.8',
    'Xeplin/venv/lib/python3.8/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Я нашел много уникальных ответов для подобных ситуаций, но ни один из них похоже, что эта ошибка устранена.

Я попытался открыть все разрешения для виртуального окружения, открыть разрешения для всей моей структуры папок и несколько других вещей, которые я по сути копирую и вставляю из различных потоков stackoverflow.

Я делаю все это в первый раз, поэтому я не уверен, какие файлы имеют отношение к решению этой проблемы. Я приведу здесь несколько вещей.

tail /etc/apache2/mods-available/wsgi.conf

    #The WSGILazyInitialization directives sets whether or not the Python
    #interpreter is preinitialised within the Apache parent process or whether
    #lazy initialisation is performed, and the Python interpreter only
    #initialised in the Apache server processes or mod_wsgi daemon processes
    #after they have forked from the Apache parent process.

        #WSGILazyInitialization On|Off

</IfModule>
WSGIPythonHome "/home/ubuntu/Xeplin/venv"

(я добавил здесь python home. Остальные файлы по умолчанию)

cat /etc/apache2/mods-available/wsgi.load

LoadModule wsgi_module "/usr/lib/apache2/modules/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so"

Если предыдущие попытки отладки могли повлиять на мое получение этой ошибки, мне ранее приходилось устанавливать mod_wsgi, которая не работала, когда моя виртуальная среда была активной, но работала после деактивации. После запуска python3.8 -m pip install mod_wsgi вне моей венвы я смог запустить pip install mod_wsgi внутри env. Я нашел это странным, поэтому я упоминаю об этом здесь.

...