我正在尝试安装 python 3.2,并在 python 3.2 中获取 setuptools 和 pip。在 python 2.7 中一切似乎都工作正常。但是,当我尝试使用此代码安装 setuptools 时,wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python3.2
出现以下错误
Extracting in /tmp/tmpcwnav_
Traceback (most recent call last):
File "<stdin>", line 332, in <module>
File "<stdin>", line 329, in main
File "<stdin>", line 51, in _install
File "/usr/local/lib/python3.2/contextlib.py", line 28, in __enter__
return next(self.gen)
File "<stdin>", line 101, in archive_context
File "/usr/local/lib/python3.2/zipfile.py", line 1004, in extractall
self.extract(zipinfo, path, pwd)
File "/usr/local/lib/python3.2/zipfile.py", line 992, in extract
return self._extract_member(member, path, pwd)
File "/usr/local/lib/python3.2/zipfile.py", line 1035, in _extract_member
source = self.open(member, pwd=pwd)
File "/usr/local/lib/python3.2/zipfile.py", line 978, in open
close_fileobj=not self._filePassed)
File "/usr/local/lib/python3.2/zipfile.py", line 487, in __init__
self._decompressor = zlib.decompressobj(-15)
AttributeError: 'NoneType' object has no attribute 'decompressobj'
根据一些谷歌搜索,看起来我遇到了问题,因为 zlib 尚未安装。我在尝试安装 python 2.7 的 setuptools 时没有遇到这个问题。我进入 python 3.2 并尝试导入 zlib 并在尝试时收到错误消息。我也尝试这样做sudo apt-get install zlib
并收到错误消息E: Unable to locate package zlib
。当我尝试或 sudo apt-get install zlib1g-dev` 时,我没有收到错误消息,sudo apt-get install zlib1g
我真的不知道发生了什么。如何获取 python 3.2 的 zlib (或以其他方式解决此问题?)
答案1
你的问题似乎是你编译的Python不支持zlib。确保您已安装 zlib-devel ( sudo apt-get install zlib1g-dev
)前编译Python。使用你自己编译的Python作为系统Python的补充或替代都没有问题。但是,您必须记住在调用 Python 时要明确,并通过指定完整路径(例如/usr/local/bin/python
而不是普通路径)来调用您打算使用的路径python
。或者,您可以将 ( /usr/local/bin/
) 添加到您的PATH
前 /usr/bin/
这样当你输入python
system 时就会运行编译后的 Python。
答案2
你的问题在这里:
File "/usr/local/lib/python3.2/zipfile.py", line 487, in __init__
您没有使用系统 python 二进制文件。确保您使用系统二进制文件:
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo /usr/bin/python3
它应该有效。