Pip: 新的解析器无法安装仅具有预发行版的发行版

创建于 2020-04-18  ·  3评论  ·  资料来源: pypa/pip

环境

  • 点子版本:大师,今天
  • Python版本:3
  • 作业系统:linux

描述

我想安装仅包含预发行版的发行版。 旧版解析器确实支持这一点。 新的没有。

注意:使用--pre似乎不会影响结果。 旧版解析程序可以在不使用--pre情况下安装此类发行版。

预期行为

安装应该成功。

如何繁殖

$ pip install --no-deps odoo13-addon-date-range --unstable-feature=resolver
ERROR: Exception:
Traceback (most recent call last):
  File "/home/me/pip/src/pip/_internal/cli/base_command.py", line 199, in _main
    status = self.run(options, args)
  File "/home/me/pip/src/pip/_internal/cli/req_command.py", line 185, in wrapper
    return func(self, options, args)
  File "/home/me/pip/src/pip/_internal/commands/install.py", line 333, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/home/me/pip/src/pip/_internal/resolution/resolvelib/resolver.py", line 80, in resolve
    self._result = resolver.resolve(requirements)
  File "/home/me/pip/src/pip/_vendor/resolvelib/resolvers.py", line 413, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/me/pip/src/pip/_vendor/resolvelib/resolvers.py", line 310, in resolve
    failure_causes = self._attempt_to_pin_criterion(name, criterion)
  File "/home/me/pip/src/pip/_vendor/resolvelib/resolvers.py", line 240, in _attempt_to_pin_criterion
    raise InconsistentCandidate(candidate, criterion)
pip._vendor.resolvelib.resolvers.InconsistentCandidate: Provided candidate LinkCandidate('https://files.pythonhosted.org/packages/1f/0b/945335a37082b6b013cc1331f49e3f5b6a18cdd0b693475e6ca9e9a7df6e/odoo13_addon_date_range-13.0.1.0.1.dev8-py3-none-any.whl#sha256=3883bbe87db8d5db4364e8a42e86546e19e8e4f123d98c4e9454587dfa9401df (from https://pypi.org/simple/odoo13-addon-date-range/) (requires-python:>=3.5)') does not satisfy SpecifierRequirement('odoo13-addon-date-range')

注意我使用--no-deps是因为依赖项不是pypi,但这对结果没有影响。

new resolver auto-locked bug

所有3条评论

如果来自find_matches()的匹配项未为is_satisfied_by()返回true,则引发InconsistentCandidate is_satisfied_by() 。 因此,我的猜测是我们需要修复is_satisfied_by()以接受预发行版本。

赶上@sbidoul! ^> ^

我不认为是固定的,现在到点子20.1的测试版之前这个需求,但是,是的,我们确实有最终实现这一点。 :)

如果所选版本是预发行版,则也将失败并显示--pre 。 但是,并非所有预发行版都会失败,仅当说明符不包含预发行版时才会失败。 我想我有个解决办法。

此页面是否有帮助?
0 / 5 - 0 等级