Python pip3列表来自断言错误

Python pip3列表来自断言错误,python,python-2.7,python-3.x,pip,Python,Python 2.7,Python 3.x,Pip,当我在终端中执行pip3 list时,出现以下错误: cliu@cliu-ubuntu:~$ pip3 list Exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/usr/lib/python3/dist-pa

当我在终端中执行
pip3 list
时,出现以下错误:

cliu@cliu-ubuntu:~$ pip3 list
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 80, in run
    self.run_listing(options)
  File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 142, in run_listing
    self.output_package_listing(installed_packages)
  File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 151, in output_package_listing
    if dist_is_editable(dist):
  File "/usr/lib/python3/dist-packages/pip/util.py", line 367, in dist_is_editable
    req = FrozenRequirement.from_dist(dist, [])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/cliu/.pip/pip.log 

有人知道怎么解决这个问题吗

根据评论中链接的错误判断,这可以通过升级到最新的Pip来修复。因为在Ubuntu/Debian的打包系统中这样做是不寻常的,所以我认为在一个应用程序中安装新版本的Pip可能会更简单。创建virtualenv后,可以使用以下命令升级到最新的Pip:

pip install --upgrade pip

奇怪的是,我也遇到了同样的问题,但第一个解决方案对我不起作用(在一次又一次地清除它之后,我得到了相同的错误)。所以我决定编辑这一行

assert len(specs) == 1 and specs[0][0] == '=='
并删除:

 == '=='

有趣的是,它现在可以工作了。

我通过注释掉有问题的
assert
语句解决了这个问题:

# assert len(specs) == 1 and specs[0][0] == '=='

这绝对不是一个理想的解决方案,因为这句话可能有很好的理由,但是
pip3列表
现在起作用了,我使用的pip3的所有其他部分也起作用了。

虽然这里有一个公认的答案,但这对我来说不起作用。因此,我的回答可能会帮助其他面临同样问题的人。 此错误在此处通过一行提交得到修复

解决方法是将线路从

assert len(specs) == 1 and specs[0][0] == '=='


行号因版本而异,但调试消息应使查找更容易。在您的例子中,它是
行299
,在文件
“/usr/lib/python3/dist-packages/pip/\uuuu-init\uuuuuuuuu.py”中。您可能有兴趣看看这个。对不起,我不知道如何修改这个代码。这里是
pip/\uuuu init\uuuu.py
?我想到了很多事情:1。“不工作”没有任何意义。您收到了什么错误消息?2.如果你是在一个virtualenv(你是,对吧?),它只是叫“pip”,不需要3。3.即使您不在virtualenv中,pip也会将自己称为“pip”,因此它将是
pip3安装-升级pip
。但是在虚拟电视之外,如果没有sudo,这将不起作用,并且可能会混淆APT,所以我不推荐它。为什么要投反对票?那时候它对我非常有效。这太不公平了。因为我的回答是第一个涉及此事的。看看回答的日期。
assert len(specs) == 1 and specs[0][0] in ["==", "==="]