python - Virtualenv 没有名为 zlib 的模块

标签 python virtualenv zlib

我正在尝试在 Python2.6 下创建 Python 2.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) 我的系统 (centos) 中也安装了 zlib:

[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 中安装了它,应该没问题吧?),他们还使用 pythonbrew,这显然不再处于积极开发状态。

为什么 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/

相关文章:

python - 如何将pyw文件转换成exe文件?

python - 如何从 virtualenv 迁移到 buildout?

c++ - 链接错误 : Installing boost zlib filters using NuGet in Visual Studio (2012)

python - Easy_install virtualenv/Pip install virtualenv - 不起作用

c - 跳过不兼容的 zlib dll

c# - Zlib 兼容的压缩流?

Python:从文件中读取行,检查是否在其他文件中,是否是输出文件的打印行

python - 为什么 shell=True 会吃掉我的 subprocess.Popen stdout?

python - 在 python 中更新元组值

python - Gunicorn 没有重新加载 Django 应用程序