【问题标题】:pip install fails with TypeError: identify() got an unexpected keyword argument 'requirement_or_candidate'pip install 失败并出现 TypeError:identify() got an unexpected keyword argument 'requirement_or_candidate'
【发布时间】:2021-06-18 05:53:39
【问题描述】:

我最近使用自下而上的方法将我的 Arch linux 安装移动到了一台新机器上。 IE。新安装arch linux,重新安装所有包,然后将选定的配置复制到新机器上。

现在,当我尝试使用 pip 安装程序时,我得到一个 TypeError,如下所示:

ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 224, in _main
    status = self.run(options, args)
  File "/usr/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 180, in wrapper
    return func(self, options, args)
  File "/usr/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 320, in run
    requirement_set = resolver.resolve(
  File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 121, in resolve
    self._result = resolver.resolve(
  File "/home/mor3dr3ad/.local/lib/python3.9/site-packages/resolvelib/resolvers.py", line 454, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/mor3dr3ad/.local/lib/python3.9/site-packages/resolvelib/resolvers.py", line 319, in resolve
    name, crit = self._merge_into_criterion(r, parent=None)
  File "/home/mor3dr3ad/.local/lib/python3.9/site-packages/resolvelib/resolvers.py", line 171, in _merge_into_criterion
    name = self._p.identify(requirement_or_candidate=requirement)
TypeError: identify() got an unexpected keyword argument 'requirement_or_candidate'

通过 sudo 以 root 身份安装实际上可以工作(我知道我不应该这样做,只是为了测试。所以我认为这一定是由于权限问题或在组方面缺少某些东西。

谁能指出我正确的方向?我需要将我的用户添加到某个组吗?

谢谢

【问题讨论】:

    标签: python pip arch


    【解决方案1】:

    您在/home/mor3dr3ad/.local/lib/python3.9/site-packages/resolvelib/ 有一个本地安装的库resolvelib。似乎它与 /usr/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib//usr/lib/python3.9/site-packages/pip/_vendor/resolvelib/ 上的 resolvelib 出售的 pip 不兼容。

    我的建议是卸载本地resolvelib。试试

    pip uninstall resolvelib
    

    PS。很可能sudo 有效,因为它将用户切换到root,并且用户在/root/.local/lib/ 没有本地包

    【讨论】:

    • 嘿,这确实有效,谢谢。有趣的是,一个有缺陷的库会阻止 pip 的所有工作。解决了。​​
    • @mor3dr3ad 也许你有一个较旧的pip,它使用绝对导入 (from resolvelib import Resolve) 导入 resolvelib,而最近的代码使用完全导入 from pip._vendor.resolvelib import Resolve,这样可以防止此类灾难。
    • 是的,就像我说的。从另一台机器传输,但通过 pkglist.txt。有趣的是它应该安装一个旧版本..现在就像一个魅力。
    猜你喜欢
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2022-12-02
    • 2022-01-12
    • 2015-09-23
    • 2021-06-03
    相关资源
    最近更新 更多