Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions