为什么PIP会对PIP冻结提出断言错误?

为什么PIP会对PIP冻结提出断言错误?,pip,Pip,我的控制台: desarrollador@desarrollador-HP-14-Notebook-PC1:~$ pip freeze Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 126, in main self.run(options, args) File "/usr/lib/p

我的控制台:

desarrollador@desarrollador-HP-14-Notebook-PC1:~$ pip freeze  
Exception:  
Traceback (most recent call last):  
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 126, in main  
    self.run(options, args)  
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 68, in run  
   req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)  
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 156, in from_dist  
    assert len(specs) == 1 and specs[0][0] == '=='  
AssertionError
我安装了tornado软件包,之后就发生了这种情况。如何修复它?

我在找到了解决方案


pip安装setuptools==7.0

原因:Ubuntu 12.04中的python pip包已经严重过时,并且有一些带有特定包名的bug(如我所见),无法正确解析它们


解决方案:通过easy_install安装较新版本的pip。

您的pip可能已经过时。即使在Ubuntu14.04LTS中,它使用apt-get-install-python-pip安装的pip版本也是1.5.4。尝试手动更新pip,也可能再次更新新包

pip --version # 1.5.4
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
pip --version # 6.0.8
hash -r # reset bash cache

这对我很有效(运行Ubuntu,12和14 LTS):


升级到最新版本的setuptools,以便能够升级到最新版本的pip,并升级到最新版本的pip,以获得已修复AssertException错误的版本。

首先,我运行了Martin Mohan的解决方案:

/usr/local/bin/pip uninstall pip
apt-get remove python-pip
apt-get install python-pip
然后,BoredCode最终解决了问题,两种解决方案都在线程底部附近找到:


这两个修复程序背后的逻辑在线程(链接在上面)中进行了说明,因此我将不再在这里逐一讨论。

问题是由于安装了旧版本的
pip
。 运行以下命令安装新版本的
pip

sudo easy_install -U pip. 

可能有点晚了,但我发现有一件事是安装了2到3个版本的pip(取决于您安装的内容)

pip-安装的操作系统版本,冻结不起作用,它可能已经过时 pip2-安装了较新的,但通过pip等升级了pip 如果同时安装了python3和python2,则安装pip3

您可以更改$PATH中使用的pip,也可以执行我所做的操作:


pip2 freeze(如果您有多个python选项,它在ubuntu14上可以工作)

您提供的信息很少。您使用的是什么版本的pip?您是否查看了具有相同或类似错误消息的各种线程?它可能与分发相关。您是否还安装了
distribute
版本?SO中没有类似的线程。我用的是最新的版本。我也得到了这个。我使用的是pip版本1.5.4
pip安装
工作正常。
sudo easy\U install-U pip
可以修复它。尝试运行
pip list
。如果您的问题与我的问题类似,pip将列出大多数包,然后再对造成问题的包抛出错误。然后查看
/usr/local/lib/python2.7/dist软件包/
(或安装软件包的任何地方),看看是否可以按字母顺序确定下一个软件包是什么。也许这将为您提供解决问题所需的信息?我可以设法升级pip!:D我使用的是pip 1.0(ubuntu 12.04附带的版本),这对我来说暂时有效,但安装其他软件包时我安装了更新安装工具,所以降级似乎不是我的选择。我刚刚意识到我的$PATH上有几个版本的pip!路径上的第一个pip是旧版本。使用pip-V运行每个pip,检查哪一个是最新的(今天:7.1.2),并删除旧的。最后删除/删除/清除我所有的“pip”,然后安装最新的。我想这是因为安装pip有5种不同的方法,每种方法都有一点不同。如果root用户安装了
pip
$apt-get install python-pip
$which pip
/usr/bin/pip

$pip install -U pip
$which pip
/usr/bin/pip

$hash -r
$which pip
/usr/local/bin/pip
sudo easy_install -U pip.