Apache wsgi_mod не удается запустить на python 3.10

Я разрабатываю приложение django, используя django 4 и python 3.10. У меня был сервер, использующий apache и mod_wsgi, на котором работало старое приложение, использующее python3.8.

Я создал виртуальный env из 3.10. Командная строка manage.py работает хорошо.

Я изменил конфиг apache:

WSGIDaemonProcess my_app310 python-path=/home/ubuntu/my_app310:/home/ubuntu/venv/my_app310/lib/python3.10/site-packages
WSGIProcessGroup my_app310
WSGIScriptAlias / /home/ubuntu/my_app310/my_app310/wsgi.py

Но я продолжаю получать:

[mpm_event:notice] AH00489: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[core:notice] AH00094: Command line: '/usr/sbin/apache2'
[wsgi:error] mod_wsgi (pid=1724834): Failed to exec Python script file '/home/ubuntu/my_app310/my_app310/wsgi.py'.
[wsgi:error] mod_wsgi (pid=1724834): Exception occurred processing WSGI script '/home/ubuntu/my_app310/my_app310/wsgi.py'.
[wsgi:error]  Traceback (most recent call last):
[wsgi:error]     File "/home/ubuntu/venv/my_app310/lib/python3.10/site-packages/django/utils/timezone.py", line 10, in <module>
[wsgi:error]       import zoneinfo
[wsgi:error] ModuleNotFoundError: No module named 'zoneinfo'

Что позволяет предположить, что что-то работает с использованием python3.8, а не python3.10 (mod_wsgi?). Что я упускаю?

WSGI ясно говорит, что File "/home/ubuntu/venv/my_app310/lib/python3.10/site-packages/django/utils/timezone.py", учитывая, что по этому пути нет модуля с именем zoneinfo, попробуйте импортировать модуль в виртуальную среду python. Пример: pip install (module)

Если вы используете разные версии python для компиляции mod_wsgi для Apache (в вашем случае 3.8 / 3.10), пожалуйста, обратитесь к комментариям в документации mod _wsgi относительно опции "--enable-shared"

https://modwsgi.readthedocs.io/en/master/user-guides/installation-issues.html#python-patch-level-mismatch

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