[英]Python, Django mod_wsgi, virtualenv errror: ImportError: No module named os (paths are not correct)
I am trying to set up a Django appliaction on Apache using mod_wsgi but it I keep getting an error: 我正在尝试使用mod_wsgi在Apache上设置Django应用,但我不断收到错误消息:
ImportError: No module named os
I am on Centos. 我在Centos上。 The system version of Python is 2.6, but I have asked teh sysadmin to install 2.7.
Python的系统版本是2.6,但是我已经要求sysadmin安装2.7。 Mod_wsgi was installed from a package manager, so is probably using python 2.6.
Mod_wsgi是从软件包管理器安装的,因此可能是使用python 2.6。
The Apache file for wsgi.conf contains the following: wsgi.conf的Apache文件包含以下内容:
LoadModule wsgi_module modules/mod_wsgi.so LoadModule wsgi_module模块/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
At the top of th wsgi.py script I print the sys path 在wsgi.py脚本的顶部,我打印sys路径
import sys
print "\n".join(sys.path)
The error log contains the following messages, that show that mod_wsgi is looking for python2.6 libraries: 错误日志包含以下消息,表明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
So it looks like mod_wsgi (or something) is appending bin/lib64/python2.6 to the paths I have given it. 所以看起来mod_wsgi(或其他东西)将bin / lib64 / python2.6附加到我给它的路径上。 Is this because it is expecting me to use python2.6?
这是因为它期望我使用python2.6吗?
Can I use my virtualenv (python2.7) with mod_wsgi that is expecting python2.6. 我可以将我的virtualenv(python2.7)与期望python2.6的mod_wsgi一起使用吗? How can I fix the paths, so that they point to the correct place?
如何修复路径,以便它们指向正确的位置?
No, you can't mix and match like this. 不,您不能这样混合搭配。 You'll need to install a version of mod_wsgi that is compiled against Python 2.7.
您需要安装针对Python 2.7编译的mod_wsgi版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.