我在使用 MAC 时遇到了同样的错误
我的 MAC 操作系统版本
$ uname -v
Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64
这里使用python3.4
问题)
使用 python3.4 时 zlib 不可用
$ python3.4 get-pip.py Traceback(最近一次调用最后一次):文件“get-pip.py”,第 20204 行,在 main() 文件“get-pip.py”,第 152 行,在 main bootstrap(tmpdir =tmpdir) 文件“get-pip.py”,第 82 行,在 bootstrap import pip zipimport.ZipImportError: can't decompress data; zlib 不可用
重建 Python 失败
./configure --with-zlib-dir=/usr/local/lib
...配置:警告:无法识别的选项:--with-zlib-dir ...
解决方案
确保 zlib 已安装。默认情况下,它将安装在 /usr/lib
ls /usr/lib/libz.*
如果没有安装,a. 下载并安装 i) 从 zlib.net 站点或 ii) 从 git repo 下载并安装,如下所示
git clone https://github.com/madler/zlib.git
或 iii)。使用python源码目录Modules/zlib中的zlib源码
湾。安装 zlib
./configure --prefix=/usr/local
make
sudo make install
2.通过取消注释“#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz”下面的行来编辑/Module/Setup
3.再次从源代码重建Python3.4
cd ${PYTHON_SRC_CODE_DIR}
./configure --prefix=${PYTHON_HOME_DIR}
make
sudo make install
4.确认安装请注意gzip依赖zlib。
nbr_repeation=100
f=open("some_file.txt","at")
for line in range(nbr_repeation):
print('[{}] This file will be compressed using python zlib/gzipmodule'.format(line),file=f)
f.close()
f=open("some_file.txt","rt")
import gzip
gz=gzip.open('some_file.gz', 'wt')
for line in f : gz.write(line)
gz.close() # Like to be clean exit
f.close() # Like a clean exit
"""confirm the creation of the compressed gzip files"""
import os
print([ (file,os.stat(file)[6],"bytes") for file in os.listdir(".") if file.startswith("some")])