Ambiente
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.
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.