Stop installing setuptools and wheel on Python 3.12+ by edmorley · Pull Request #218 · pypa/get-pip (original) (raw)
Currently get-pip.py
installs not only pip, but also setuptools and wheel by default, unless the --no-setuptools
/ --no-wheel
(or PIP_NO_SETUPTOOLS
/ PIP_NO_WHEEL
env vars) are used.
This has historically been necessary, however, modern versions of pip will now fallback to pyproject.toml
(PEP 517) based builds (which will default to a setuptools backend, and thus automatically install setuptools and wheel in the isolated build environment) if either setuptools is not installed (as of pip 22.1), or if wheel is not installed (as of pip 23.1).
In addition, as of Python 3.12, the stdlib's ensurepip and venv modules no longer install setuptools, and only install pip.
As such, it is now time for get-pip.py
to stop installing setuptools and wheel by default on Python 3.12+, in order to:
- Improve parity with the behaviour of
ensurepip
/venv
on Python 3.12+. - Act as another small step towards
pyproject.toml
/ PEP 517 based builds eventually becoming the pip default. (Cross-reference: Default to isolated, pyproject.toml-based builds pip#9175) - Allow
get-pip.py
to focus on its primary responsibility: bootstrapping Pip.
Users can still request that setuptools and/or wheel are installed on Python 3.12+, by adding them to the get-pip.py
invocation like so:
$ python get-pip.py setuptools wheel
Closes #200.