Skip to content

Confusing warning about missing 'wheel' when building a project that only has build-system.requires #11673

Closed
@Jackenmen

Description

@Jackenmen

Description

The warnings here are quite confusing:

Collecting multidict==6.0.4
  Downloading multidict-6.0.4.tar.gz (51 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 51.3/51.3 kB 717.9 kB/s eta 0:00:00
  Installing build dependencies ... done
  WARNING: Missing build requirements in pyproject.toml for multidict==6.0.4 from https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz.
  WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: multidict
  Building wheel for multidict (pyproject.toml) ... done
  Created wheel for multidict: filename=multidict-6.0.4-cp310-cp310-linux_x86_64.whl size=113460 sha256=9df21d0f626349e99094ca79f4edb9257de4141c4491220089a1d7fef83f43be
  Stored in directory: /home/ubuntu/.cache/pip/wheels/ae/d2/13/61a3897335dd417ee80bcf70d39fea8eda1f7761d28d5547f5
Successfully built multidict

for a project with this configuration:

[build-system]
requires = ["setuptools >= 40"]

when running pip install multidict==6.0.4 --no-binary multidict in a venv that has latest versions of pip and wheel.

Expected behavior

No warning as the build continues without issues.

I first mentioned this in PyPA Discord and it has been suggested that the warning can be removed as setuptools injects wheel nowadays anyway.

pip version

22.3.1

Python version

3.10.6

OS

Ubuntu 22.04

How to Reproduce

Run commands:

python3.10 -m venv repro
. repro/bin/activate
python -m pip install -U pip wheel
python -m pip install multidict==6.0.4 --no-binary multidict

Output

$ python3.10 -m venv repro
$ . repro/bin/activate
$ python -m pip install -U pip wheel                          
Requirement already satisfied: pip in ./repro/lib/python3.10/site-packages (22.0.2)
Collecting pip
  Using cached pip-22.3.1-py3-none-any.whl (2.1 MB)
Collecting wheel
  Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
Installing collected packages: wheel, pip
  Attempting uninstall: pip
    Found existing installation: pip 22.0.2
    Uninstalling pip-22.0.2:
      Successfully uninstalled pip-22.0.2
Successfully installed pip-22.3.1 wheel-0.38.4

$ python -m pip install multidict==6.0.4 --no-binary multidict
DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453
Collecting multidict==6.0.4
  Using cached multidict-6.0.4.tar.gz (51 kB)
  Installing build dependencies ... done
  WARNING: Missing build requirements in pyproject.toml for multidict==6.0.4 from https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz.
  WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: multidict
  Building wheel for multidict (pyproject.toml) ... done
  Created wheel for multidict: filename=multidict-6.0.4-cp310-cp310-linux_x86_64.whl size=113461 sha256=07c1ddcffc35d2f2afa4ca97acffbc5adeba5d04e347ab92b8438960ce79b451
  Stored in directory: /home/ubuntu/.cache/pip/wheels/ae/d2/13/61a3897335dd417ee80bcf70d39fea8eda1f7761d28d5547f5
Successfully built multidict
Installing collected packages: multidict
Successfully installed multidict-6.0.4

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: bugA confirmed bug or unintended behavior

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions