pip install broken(pkg_resources.find_distribution返回req.py-prepare_files中的空列表)

时间:2014-05-28 01:57:53

标签: python install pip

在某些时候我的pip安装破了(我怀疑升级到Ubuntu 14.04时)我还没能通过完全删除它并重新安装(通过synaptic包管理器)来破坏它。它并不适用于所有软件包,但适用于一些常见软件包,例如autopep8甚至是setuptools本身。

我得到的错误是

Downloading from URL https://pypi.python.org/packages/3.3/p/pep8/pep8-1.5.6-py2.py3-none-any.whl#md5=c7da9fb6a4316b53b6a873de076441e2 (from https://pypi.python.org/simple/pep8/)
Cleaning up...
  Removing temporary dir /tmp/pip_build_tclose...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1259, in prepare_files
    )[0]
IndexError: list index out of range

pkg_resources.find_distribution(<what-appears-to-be-a-temp-build-directory-for-package-to-install>)返回空列表时发生。我有点想法,所以任何指针都会受到最高的赞赏。

6 个答案:

答案 0 :(得分:18)

这解决了问题:

pip install --no-use-wheel --upgrade distribute

答案 1 :(得分:4)

有同样的问题和apt-get删除解决方案对我不起作用。 没有轮子更新pip对我有用:

sudo pip install -U --no-use-wheel pip

答案 2 :(得分:3)

sudo pip install --no-use-wheel scikit-image

这适用于ubuntu 14.04.4

答案 3 :(得分:1)

我尝试重新安装pip,但这并没有起作用,但最终按照这里的指示http://ubuntuforums.org/showthread.php?t=2167383对所有python-pkg资源进行了树脂化,

apt-get remove --purge python-pkg-resources

apt-get install ubuntu-desktop

现在又恢复了工作。希望有人觉得这很有用。

答案 4 :(得分:1)

这里提供的答案都没有帮助我(Mac OS X)。我这样做了:

 sudo easy_install --upgrade pip 

强制升级pip并修复了&#39; list index超出范围的问题&#39;。

答案 5 :(得分:0)

在答案对我不起作用之前,我做了一个完整的重新安装,它适用于ubuntu 14.04.4

sudo pip install -U pip