Python、Django mod_wsgi、virtualenv 错误:ImportError: No module named os(路径不正确)

Posted

技术标签:

【中文标题】Python、Django mod_wsgi、virtualenv 错误:ImportError: No module named os(路径不正确)【英文标题】:Python, Django mod_wsgi, virtualenv errror: ImportError: No module named os (paths are not correct) 【发布时间】:2015-01-15 21:25:25 【问题描述】:

我正在尝试使用 mod_wsgi 在 Apache 上设置 Django 应用程序,但我不断收到错误消息:

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 脚本的顶部,我打印系统路径

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 一起使用吗?如何修复路径,使它们指向正确的位置?

【问题讨论】:

【参考方案1】:

不,你不能像这样混搭。您需要安装针对 Python 2.7 编译的 mod_wsgi 版本。

【讨论】:

以上是关于Python、Django mod_wsgi、virtualenv 错误:ImportError: No module named os(路径不正确)的主要内容,如果未能解决你的问题,请参考以下文章

django、postgres 8.4、psycopg 2.2.2、python 2.7、mod_wsgi

Django/mod_wsgi/Apache - mod_wsgi 没有使用为其编译的 Python 版本 - “ModuleNotFoundError: No module named 'math'

centos+apache+python34+django+mod_wsgi 开发环境搭建

使用 apache2 在 mod_wsgi 上运行 django python 3.4

python看门狗模块在redhat服务器下不能与django/mod_wsgi一起使用

使用 Python 3.6、Apache 2.4 和 Django 1.11 在 Ubuntu 上安装 mod_wsgi