在使用 MAC 时,我遇到了相同的错误。
我的 MAC OS 版本为:
$ uname -v
Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014
这里使用的是Python3.4。
问题
在使用Python3.4时,zlib不可用。
$ python3.4 get-pip.py
Traceback (most recent call last):
File "get-pip.py", line 20204, in
main()
File "get-pip.py", line 152, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
import pip
zipimport.ZipImportError: can't decompress data; zlib not available
重新构建Python失败。
./configure --with-zlib-dir=/usr/local/lib
...
configure: WARNING: unrecognized options: --with-zlib-dir
...
解决方案
确保已安装zlib。
默认情况下,它将安装在/usr/lib中。
ls /usr/lib/libz.*
如果未安装,
a. 下载并安装
i)从zlib.net网站
或
ii)从像下面这样的git存储库
git clone https://github.com/madler/zlib.git
或者
iii). 在Python源代码目录下的Modules/zlib中使用zlib源代码
b. 安装zlib
./configure --prefix=/usr/local
make
sudo make install
2. 取消注释下面这行的内容:"/Module/Setup",然后保存。
"#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz "
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()
f.close()
"""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")])
sudo apt-get build-dep python
或类似命令。这可以确保你拥有所有必要的开发头文件,以供Python链接到库时使用。 - gps