为什么PIP会在pip冻结时引发AssertionError?

时间:2014-12-30 19:15:29

标签: pip

我的控制台:

  

desarrollador @ desarrollador-HP-14-Notebook-PC1:〜$ pip冻结
  例外:
  追溯(最近的呼叫最后):
   文件“/usr/lib/python2.7/dist-packages/pip/basecommand.py”,第126行,在主体上      self.run(options,args)
   文件“/usr/lib/python2.7/dist-packages/pip/commands/freeze.py”,第68行,在运行中
    req = pip.FrozenRequirement.from_dist(dist,dependency_links,find_tags = find_tags)
   在from_dist中输入文件“/usr/lib/python2.7/dist-packages/pip/init.py”,第156行      断言len(specs)== 1和specs [0] [0] =='=='
  的AssertionError

我安装了龙卷风包,这发生了。我该如何解决?

7 个答案:

答案 0 :(得分:36)

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

pip install -U setuptools
pip install -U pip

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

答案 1 :(得分:18)

原因:Ubuntu 12.04中的python-pip软件包严重过时,并且某些软件包名称存在一些错误(我可以看到)并且无法正确解析它们。

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

答案 2 :(得分:15)

你的点子可能已经过时了。即使在Ubuntu 14.04 LTS中,使用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

https://pip.pypa.io/en/latest/installing.html

答案 3 :(得分:8)

我在this link找到了解决方案。

pip install setuptools==7.0

答案 4 :(得分:3)

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

/usr/local/bin/pip uninstall pip
apt-get remove python-pip
apt-get install python-pip

然后,无聊编码最终修复了问题,两个解决方案都在线程底部附近找到:I screwed up the system version of Python Pip on Ubuntu 12.10

$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

这两个修复背后的逻辑在线程(上面链接)中说明,所以我将不再进入每个。

答案 5 :(得分:3)

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

sudo easy_install -U pip. 

答案 6 :(得分:2)

可能有点晚了,但我发现有一件事是安装了2或3个版本的pip(取决于你安装的是什么)

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

你可以改变在$ PATH中使用哪个pip,或者做我做的事情:

pip2冻结(如果你有多个python选项,它可以在ubuntu14上运行)