我正在尝试在python2.6下创建python2.7虚拟环境,我只是运行:

virtualenv --python=python27 #python27 correctly leads to my python installation in /opt/python2.7/bin/python

virtualenv失败,错误如下
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/virtualenv.py", line 17, in <module>
import zlib
ImportError: No module named zlib

这让我困惑,因为:
1)我显然有python zlib模块。当我在python 2.6的交互环境中运行“import zlib”时,可以很容易地导入它。
2)我的系统中也安装了zlib(centos):
[me@mycomp]# rpm -qa | grep zlib
zlib-1.2.3-29.el6.x86_64
zlib-1.2.3-29.el6.i686
zlib-devel-1.2.3-29.el6.x86_64

关于这个问题,还有另外两个问题,herehere,在这两种情况下,人们根本没有安装zlib,这不是我的情况(我在python 2.6中安装了zlib,应该可以吗?)他们还使用了明显不再处于积极发展阶段的蟒蛇。
为什么virtualenv找不到zlib?virtualenv如何查找其模块?我需要在我的python2.7中安装zlib吗?或者重新安装python2.7以支持zlib?
旁注:请不要问我为什么使用旧版本,这不是我的选择。

最佳答案

您的python必须是在不支持python的情况下编译的,很可能是因为编译时未安装zlib-devel。查看makemake install的输出,您应该看到如下内容(取自于Python 2.7.6的构建):

Python build finished, but the necessary bits to build these modules were not found:
[...]        zlib
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

要解决您的问题,您需要安装zlib devel(如果没有安装)并重新编译或重新安装python。

关于python - Virtualenv没有名为zlib的模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20829507/

10-12 00:12
查看更多