pip3 列表出现 AssertionError
pip3 list comes AssertionError
当我在终端中执行 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 中可能会更简单。创建 virtualenv 后,您可以使用此命令升级到最新的 Pip:
pip install --upgrade pip
奇怪,我遇到了同样的问题,但第一个解决方案对我不起作用(我一遍又一遍地清除它后出现同样的错误)。所以我决定编辑该行。
assert len(specs) == 1 and specs[0][0] == '=='
并删除:
== '=='
有趣,但现在可以了。
我通过注释掉有问题的 assert
语句解决了这个问题:
# assert len(specs) == 1 and specs[0][0] == '=='
这绝对不是一个理想的解决方案,因为该声明可能是有充分理由的,但 pip3 list
现在可以工作了,我使用的 pip3 的所有其他部分也是如此。
虽然这里有一个可接受的答案,但对我不起作用。所以,我的回答可能会帮助其他面临同样问题的人。
此错误已通过此处的单行提交修复。
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"
中
当我在终端中执行 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 中可能会更简单。创建 virtualenv 后,您可以使用此命令升级到最新的 Pip:
pip install --upgrade pip
奇怪,我遇到了同样的问题,但第一个解决方案对我不起作用(我一遍又一遍地清除它后出现同样的错误)。所以我决定编辑该行。
assert len(specs) == 1 and specs[0][0] == '=='
并删除:
== '=='
有趣,但现在可以了。
我通过注释掉有问题的 assert
语句解决了这个问题:
# assert len(specs) == 1 and specs[0][0] == '=='
这绝对不是一个理想的解决方案,因为该声明可能是有充分理由的,但 pip3 list
现在可以工作了,我使用的 pip3 的所有其他部分也是如此。
虽然这里有一个可接受的答案,但对我不起作用。所以,我的回答可能会帮助其他面临同样问题的人。 此错误已通过此处的单行提交修复。
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"