AttributeError: 'NoneType' 对象没有属性 'excluded_of'

JPG*_*JPG 5 python pip python-3.x

通过 pip 安装依赖项时出现属性错误

Traceback (most recent call last):
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 210, in _main
    status = self.run(options, args)
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 180, in wrapper
    return func(self, options, args)
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 319, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 122, in resolve
    requirements, max_rounds=try_to_avoid_resolution_too_deep,
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_vendor/resolvelib/resolvers.py", line 445, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_vendor/resolvelib/resolvers.py", line 344, in resolve
    success = self._backtrack()
  File "/home/jpg/.virtual_env/cloud/lib/python3.6/site-packages/pip/_vendor/resolvelib/resolvers.py", line 287, in _backtrack
    criterion = self.state.criteria[name].excluded_of([candidate])
AttributeError: 'NoneType' object has no attribute 'excluded_of'
Run Code Online (Sandbox Code Playgroud)

我的requirements.txt样子

celery==5.0.2
billiard<4.0,>=3.6.0
redis==3.5.3
redis-log-handler==0.0.1.dev32
Run Code Online (Sandbox Code Playgroud)

JPG*_*JPG 8

更新 - 1 (on 2020-12-27)

该问题已被修复pip==20.3.3,因此您不会收到此异常。

但是,(这里)redis-log-handler==0.0.1.dev32依赖于redis==3.0.1但是,您redis==3.5.3在 requirements.txt 上,因此依赖项不会解析。所以,你会进一步收到一个错误(我会说,一个验证错误),

错误:无法安装 -r requirements.txt(第 4 行)和 redis==3.5.3,因为这些包版本具有相互冲突的依赖项。

冲突原因:用户请求的redis==3.5.3 redis-log-handler 0.0.1.dev32 依赖于redis==3.0.1

要解决此问题,您可以尝试:

  1. 放宽您指定的软件包版本范围
  2. 删除包版本以允许 pip 尝试解决依赖冲突

这个错误报告非常有用,是时候调整你的包依赖了。

注意: 如果您对调整依赖项不感兴趣并想像以前一样解决它,请阅读以下部分


原帖

这是一个问题,PIP版本20.3,并没有固定的固定pip==20.3.3

方法一

通过以下方式安装以前稳定版本的 pip (20.2.X),

pip install --upgrade pip~=20.2.0
Run Code Online (Sandbox Code Playgroud)

方法二

--use-deprecated安装要求时使用标志

pip install -r requirements.txt --use-deprecated=legacy-resolver
Run Code Online (Sandbox Code Playgroud)