Pip: El nuevo solucionador no puede instalar distribuciones que solo tengan versiones previas

Creado en 18 abr. 2020  ·  3Comentarios  ·  Fuente: pypa/pip

Ambiente

  • versión pip: maestro, hoy
  • Versión de Python: 3
  • SO: linux

Descripción

Quiero instalar una distribución que solo tenga prelanzamientos. El solucionador heredado admite esto. El nuevo no lo hace.

Nota: el uso de --pre no parece influir en el resultado. El solucionador heredado podría instalar tales distribuciones sin usar --pre .

Comportamiento esperado

La instalación debería realizarse correctamente.

Cómo reproducir

$ 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')

Tenga en cuenta que usé --no-deps porque una dependencia no está en pypi, pero eso no influye en el resultado.

new resolver auto-locked bug

Todos 3 comentarios

InconsistentCandidate se genera si una coincidencia de find_matches() no devuelve verdadero para is_satisfied_by() . Así que supongo que tenemos que arreglar is_satisfied_by() para aceptar prelanzamientos.

Buen partido @sbidoul! ^> ^

No creo que esto deba arreglarse ahora mismo antes de la versión beta de pip 20.1, pero sí, tenemos que implementar esto eventualmente. :)

También fallaría con --pre si la versión seleccionada es una versión preliminar. Sin embargo, no todas las versiones preliminares fallan, solo si el especificador no contiene una versión preliminar. Creo que tengo una solución.

¿Fue útil esta página
0 / 5 - 0 calificaciones