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 ["==", "==="]