Pip: Новый преобразователь не может устанавливать дистрибутивы, в которых есть только предварительные выпуски

Созданный на 18 апр. 2020  ·  3Комментарии  ·  Источник: pypa/pip

Среда

  • версия pip: master, сегодня
  • Версия 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 Комментарий

InconsistentCandidate возникает, если совпадение из find_matches() не возвращает истину для is_satisfied_by() . Итак, я предполагаю, что нам нужно исправить is_satisfied_by() чтобы принимать предварительные версии.

Хороший улов @sbidoul! ^> ^

Я не думаю, что это нужно исправлять прямо сейчас перед бета-версией pip 20.1, но да, в конечном итоге мы должны это реализовать. :)

Это также приведет к ошибке --pre если выбранная версия является предварительным выпуском. Однако не все предварительные версии завершаются неудачно, только если спецификатор не содержит предварительных версий. Думаю, у меня есть исправление.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги