当我在终端中执行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
任何人都知道如何解决这个问题?
答案 0 :(得分:4)
根据评论中链接的错误判断,可以通过升级到最新的Pip来解决。由于在Ubuntu / Debian的包装系统中这样做是非常重要的,我认为将新版本的Pip安装到Virtualenv可能更简单。一旦你创建了virtualenv,你就可以使用这个命令升级到最新的Pip:
pip install --upgrade pip
答案 1 :(得分:2)
虽然这里有一个公认的答案,但这对我不起作用。所以,我的回答可能会帮助那些面临同样问题的人。 这个错误在这里通过单行提交修复。
https://github.com/pypa/pip/commit/6cab71f422f2425b4d2283023c9e955f9663dde6
解决方案是从
更改行assert len(specs) == 1 and specs[0][0] == '=='
到
assert len(specs) == 1 and specs[0][0] in ["==", "==="]
行号因版本而异,但调试消息应该更容易找到。在您的情况下,line 299
位于文件"/usr/lib/python3/dist-packages/pip/__init__.py"
答案 2 :(得分:0)
奇怪的是,我遇到了同样的问题,但是第一个解决方案对我来说并不起作用(我再次彻底清除它后得到了同样的错误)。所以我决定编辑该行。
assert len(specs) == 1 and specs[0][0] == '=='
并删除:
== '=='
有趣,但它现在有效。
答案 3 :(得分:0)
我通过评论有问题的assert
语句来解决这个问题:
# assert len(specs) == 1 and specs[0][0] == '=='
这绝对不是一个理想的解决方案,因为这个陈述可能有充分的理由,但pip3 list
现在可以正常工作,就像我使用的pip3的所有其他部分一样。