【发布时间】:2022-01-13 14:27:50
【问题描述】:
我正在使用 django 4 和 python 3.10 开发一个 django 应用程序。 我有一个使用 apache 和 mod_wsgi 的服务器,它曾经使用 python3.8 运行旧应用程序。
我从 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?) 运行。我错过了什么?
【问题讨论】:
-
mod_wsgi 的作者说 mod_wsgi 不适用于 Python 3.10。 twitter.com/GrahamDumpleton/status/1402398072441753601
-
@azalea 阅读 mod_wsgi 问题 list,听起来 Python3.10.2 修复了它。