Skip to content

AssertionError when installing a package with an extra and a URL constraint #12018

Open
@harupy

Description

@harupy

Description

Building a docker image with the folloiwing Dockerfile with docker build --no-cache . throws AssertionError. Is this expected?

FROM python:3.8

RUN echo "pandas @ https://files.pythonhosted.org/packages/16/75/924e3a52c35cb105a152d29622d0f06bb0f48a677e77ddd6e11ef0004164/pandas-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" > c.txt
RUN echo "pandas[performance]" > r.txt
RUN pip install -r r.txt -c c.txt

Output:

 > [4/4] RUN pip install -r r.txt -c c.txt:                                                                                                                                 
#7 2.247 ERROR: Exception:                                                                                                                                                  
#7 2.247 Traceback (most recent call last):                                                                                                                                 
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 167, in exc_logging_wrapper                                                
#7 2.247     status = run_func(*args)                                                                                                                                       
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
#7 2.247     return func(self, options, args)
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 339, in run
#7 2.247     requirement_set = resolver.resolve(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 94, in resolve
#7 2.247     result = self._result = resolver.resolve(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
#7 2.247     state = resolution.resolve(requirements, max_rounds=max_rounds)
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve
#7 2.247     self._add_to_criteria(self.state.criteria, r, parent=None)
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 147, in _add_to_criteria
#7 2.247     matches = self._p.find_matches(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/provider.py", line 224, in find_matches
#7 2.247     return self._factory.find_candidates(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 420, in find_candidates
#7 2.247     explicit_candidates.update(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 375, in _iter_candidates_from_constraints
#7 2.247     candidate = self._make_candidate_from_link(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 215, in _make_candidate_from_link
#7 2.247     self._link_candidate_cache[link] = LinkCandidate(
#7 2.247   File "/usr/local/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 273, in __init__
#7 2.247     assert name == wheel_name, f"{name!r} != {wheel_name!r} for wheel"
#7 2.247 AssertionError: 'pandas[performance]' != 'pandas' for wheel
#7 2.480 WARNING: You are using pip version 22.0.4; however, version 23.1.2 is available.
#7 2.480 You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.

I just wanted to make sure this is expected.

Expected behavior

pandas[performance] is installed successfully.

pip version

22.0.4;

Python version

3.8

OS

Linux

How to Reproduce

See the description.

Output

See the description.

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: dependency resolutionAbout choosing which dependencies to installC: direct urlDirect URL references (PEP 440, PEP 508, PEP 610)C: extrasHandling optional dependenciestype: bugA confirmed bug or unintended behavior

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions