我正在使用 django 4 和 python 3.10 開發一個 django 應用程式。我有一個使用 apache 和 mod_wsgi 的服務器,它曾經使用 python3.8 運行一個舊應用程式。
我從 3.10 創建了一個虛擬環境。命令列 manage.py 運行良好。
我改變了apache的conf:
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?) 運行。我錯過了什么?
uj5u.com熱心網友回復:
WSGI 明確表示,File "/home/ubuntu/venv/my_app310/lib/python3.10/site-packages/django/utils/timezone.py",鑒于此路徑沒有名為 zoneinfo 的模塊,請嘗試將模塊匯入您的 python 虛擬環境。示例:pip install(模塊)
uj5u.com熱心網友回復:
如果您使用不同版本的 python 為 Apache 編譯 mod_wsgi(在您的情況下為 3.8 / 3.10),請參閱 mod _wsgi 檔案中有關“--enable-shared”選項的評論。
https://modwsgi.readthedocs.io/en/master/user-guides/installation-issues.html#python-patch-level-mismatch
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/417606.html
標籤:
