【发布时间】:2015-06-05 19:28:35
【问题描述】:
当我使用 anaconda 将 Python 从 2.7.9 升级到 2.7.10 时,我的 apache2 日志中出现以下错误,并且我的网站不再工作。
mod_wsgi (pid=608): Target WSGI script '/www/wsgi_scripts/django_myproject.wsgi' cannot be loaded as Python module.
Exception occurred processing WSGI script '/www/wsgi_scripts/django_myproject.wsgi'.
Traceback (most recent call last):
File "/www/wsgi_scripts/django_myproject.wsgi", line 8, in <module>
import django.core.handlers.wsgi
File "/Users/xnx/anaconda/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 6, in <module>
from io import BytesIO
File "/Users/xnx/anaconda/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/Users/xnx/anaconda/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyErr_ReplaceException
Referenced from: /Users/xnx/anaconda/lib/python2.7/lib-dynload/_io.so
Expected in: dynamic lookup
我预计这是包库版本中的某种不匹配,但有人知道是哪一个吗?
【问题讨论】:
-
您是否尝试重建/重新安装 mod_wsgi?如果使用 Python 虚拟环境,是否在 Python 升级后重新创建了 Python 虚拟环境?升级 Python 通常会导致现有 Python 虚拟环境停止工作。
-
感谢您的回复,格雷厄姆。我确实使用 pip 重新安装了 mod_wsgi,但除非我降级 Python,否则我会得到同样的错误。
-
您是说您正在运行
mod_wsgi-express还是使用系统范围的Apache?如果在系统范围内,系统 Apache 设置如何知道从哪里获取 mod_wsgi.so?执行pip install mod_wsgi不会将 mod_wsgi '.so' 文件安装到系统 Apache 模块目录中,如果系统 Apache 已设置为从系统 Apache 模块目录中提取它,则必须作为单独的步骤完成。跨度>
标签: python-2.7 apache2 mod-wsgi