-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
Description
Feature or enhancement
Remove the bundled setuptools so that ensurepip
and python -m venv
only installs pip.
Context
The setup.py install
command of setuptools
is deprecated.
However, in an environment where setuptools
is installed but wheel
is not (such as one created with python -m venv
), pip falls back on running the deprecated and non-standard setup.py install
.
Since version 22.1 pip works correctly by default in environments where setuptools
is not installed, by enabling its PEP 517 mode automatically, leading to unsurprising installations in most cases.
So, in order to progressively expose more users to standard-based installation workflows, we (the pip team) would like that virtual environments are created without setuptools
by default.
Users faced with failing installations following this change (likely due to packages with customized setup.py
that do not support building a wheel) can easily pip install setuptools
to solve the issue.
Previous discussion
pypa/pip#8102 (comment) and following comments has some more context.
Activity
sbidoul commentedon Jul 26, 2022
@pablogsal do you think it is still acceptable to do this in 3.11? If positive we can likely land a PR on time for RC1.
pablogsal commentedon Jul 26, 2022
Unfortunately I don't feel comfortable landing this so late in the release cycle, specially so close to RC1 and given the current stability of 3.11 :(
This will need to wait until 3.12.
rafrafek commentedon Nov 7, 2022
It feels strange that
setuptools
is included when using-m venv
, butwheel
is not included.pradyunsg commentedon Jan 14, 2023
I've filed #101039 for this (almost had a number with three 0s), targetting 3.12.
edmorley commentedon Feb 23, 2023
Do you have some examples of cases where the PEP 517 mode doesn't work for legacy packages? :-)
FFY00 commentedon Mar 4, 2023
PEP 517 is backwards compatible, it should work on legacy packages, the opposite is the issue, pip trying to use the legacy path for packages that need PEP 517.
pythongh-95299: Rework test_cppext.py to not invoke setup.py directly
242 remaining items