Django, обслуживаемый apache: как установить PYTHONPATH?

У меня есть приложение Django, которое отлично работает при обслуживании командой "python manage.py runserver". Теперь я хочу, чтобы приложение обслуживалось Apache, и у меня возникли некоторые проблемы. Одна из проблем заключается в том, что я почему-то не могу не установить PYTHONPATH. Я попробовал один из следующих двух способов установить его в apache conf файле:

WSGIPythonHome /data/anaconda3/envs/partsdb
WSGIPythonPath /data/partsdb/partsdb

или

WSGIDaemonProcess partsdb python-home=/data/anaconda3/envs/partsdb python-path=/data/partsdb/partsdb

Но я получаю ошибки, говорящие, что PYTHONPATH = (не установлен). Ниже приведено полное сообщение об ошибке от сервера apache.

Current thread 0x00007fb4880ad940 (most recent call first):
<no Python frame>
Python path configuration:
  PYTHONHOME = '/data/anaconda3/envs/partsdb'
  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 = '/data/anaconda3/envs/partsdb'
  sys.base_exec_prefix = '/data/anaconda3/envs/partsdb'
  sys.platlibdir = 'lib64'
  sys.executable = '/usr/bin/python3'
  sys.prefix = '/data/anaconda3/envs/partsdb'
  sys.exec_prefix = '/data/anaconda3/envs/partsdb'
  sys.path = [
    '/data/anaconda3/envs/partsdb/lib64/python38.zip',
    '/data/anaconda3/envs/partsdb/lib64/python3.8',
    '/data/anaconda3/envs/partsdb/lib64/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'

Когда я запустил python (как /usr/bin/python3, так и /data/anaconda3/envs/partsdb/bin/python3) из командной строки, я не получил ошибок от кода import encodings.

Сервер apache продолжал работать, и когда я попытался подключиться к приложению с помощью браузера, я получил следующую ошибку примерно через 60 секунд.

Gateway Timeout

The gateway did not receive a timely response from the upstream server or application.

Также я заметил эти две строки sys._base_executable = '/usr/bin/python3' и sys.executable = '/usr/bin/python3'. Почему /usr/bin/python3, а не /data/anaconda3/envs/partsdb/bin/python3? Хотя оба являются python3, их версии различны (одна 3.6.8, а другая 3.8.13.

).

У кого-нибудь есть идеи, что может быть причиной? Спасибо.

Вернуться на верх