我正在尝试使用mod_wsgi在Apache上设置Django appliaction但是我一直收到错误:
ImportError: No module named os
我在Centos上。 Python的系统版本是2.6,但我已经要求系统管理员安装2.7。 Mod_wsgi是从包管理器安装的,所以可能使用的是python 2.6。
wsgi.conf的Apache文件包含以下内容:
LoadModule wsgi_module modules / mod_wsgi.so
WSGIPythonHome /var/www/html/mysite/virtualenv_2.7/bin
WSGIPythonPath /var/www/html/mysite/collaboratorimport/webform:/var/www/html/mysite/virtualenv_2.7/lib/python2.7/site-packages
在wsgi.py脚本的顶部,我打印了sys路径
import sys
print "\n".join(sys.path)
错误日志包含以下消息,表明mod_wsgi正在寻找python2.6库:
[Tue Nov 18 16:45:31 2014] [error] mod_wsgi (pid=2148): Unable to import 'site' module.
[Tue Nov 18 16:45:31 2014] [error] /var/www/html/uploads.cnag.cat/virtualenv_2.7/bin/lib64/python26.zip
[Tue Nov 18 16:45:31 2014] [error] /var/www/html/uploads.cnag.cat/virtualenv_2.7/bin/lib64/python2.6/
[Tue Nov 18 16:45:31 2014] [error] /var/www/html/uploads.cnag.cat/virtualenv_2.7/bin/lib64/python2.6/plat-linux2
[Tue Nov 18 16:45:31 2014] [error] /var/www/html/uploads.cnag.cat/virtualenv_2.7/bin/lib64/python2.6/lib-tk
[Tue Nov 18 16:45:31 2014] [error] /var/www/html/uploads.cnag.cat/virtualenv_2.7/bin/lib64/python2.6/lib-old
[Tue Nov 18 16:45:31 2014] [error] /var/www/html/uploads.cnag.cat/virtualenv_2.7/bin/lib64/python2.6/lib-dynload
[Tue Nov 18 16:45:31 2014] [error] Traceback (most recent call last):
[Tue Nov 18 16:45:31 2014] [error] File "/var/www/html/mysite/collaboratorimport/webform/webform/wsgi.py", line 14, in <module>
[Tue Nov 18 16:45:31 2014] [error] import os
[Tue Nov 18 16:45:31 2014] [error] ImportError: No module named os
所以看起来mod_wsgi(或其他东西)将bin / lib64 / python2.6附加到我给它的路径上。这是因为它期望我使用python2.6吗?
我可以使用我的virtualenv(python2.7)和期望python2.6的mod_wsgi。如何修复路径,以便它们指向正确的位置?
答案 0 :(得分:4)
不,你不能像这样混合搭配。您需要安装一个针对Python 2.7编译的mod_wsgi版本。