mod_wsgi未能尊重WSGIPythonHome

17 投票
1 回答
17539 浏览
提问于 2025-04-17 09:10

我正在尝试让WSGI在虚拟环境中运行。我已经把虚拟环境设置好了:

(virtualenv)dev:/var/www/app$ which python
/var/www/virtualenv/bin/python
(virtualenv)dev:/var/www/app$ python
Python 2.6.1 (r261:67515, Dec  5 2008, 22:09:34)
[GCC 4.1.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib
>>>

在我的httpd.conf文件中,我按照这里的说明,添加了以下内容:

WSGIPythonHome /var/www/virtualenv
WSGIPythonPath /var/www/virtualenv/lib/python2.6/site-packages

但是当我通过apache加载应用时,出现了以下错误:

[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] mod_wsgi (pid=15026): Exception occurred processing WSGI script '/var/www/app/wsgi.py'.
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1]   File "/var/www/app/wsgi.py", line 29, in <module>
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1]     import importlib
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] ImportError: No module named importlib

我缺少了什么呢?我该如何调试这种问题?

1 个回答

20

你的 mod_wsgi 可能是用一个和你想用的 Python 版本不一样的版本编译的。举个例子,你不能把一个是用 Python 2.4 编译的 mod_wsgi 用在一个用 Python 2.6 创建的虚拟环境里。

首先,确认一下 mod_wsgi 是为哪个版本的 Python 编译的。

撰写回答