安装 Bootstrap setuptools 时,“NoneType”对象没有属性“decompressobj”

安装 Bootstrap setuptools 时,“NoneType”对象没有属性“decompressobj”

我正在尝试安装 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/这样当你输入pythonsystem 时就会运行编译后的 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

它应该有效。

相关内容