[Python-Dev] updating ensurepip to include wheel

Donald Stufft donald at stufft.io
Wed Aug 5 16:10:43 CEST 2015

On August 5, 2015 at 10:01:50 AM, Nick Coghlan (ncoghlan at gmail.com) wrote:
> setuptools is in the situation where because it also includes
> pkg_resources, it blurs the line between "build time" and "run time"
> dependency. While it would be nice to split that and have a "just
> pkg_resources" runtime dependency distinct from the build time
> dependency, that isn't likely to happen any time soon.
> wheel, by contrast, is already a pure build time dependency for
> bdist_wheel, and thus should be getting brought in as an implied
> "build requires" by pip itself when building from source. This does
> pose an interesting challenge from the perspective of the "offline
> installation" use case for ensurepip, where wheels are used as a local
> build caching mechanism, but we don't assume PyPI access, but it isn't
> one we really considered in the original ensurepip PEP.

Just a small correction, in general setuptools does blur that line, but
for pip itself setuptools is completely a build time dependency which
isn’t *technically* any different than our dependency on wheel. We work
perfectly fine without it installed you just don’t get certain features
available to you if you don’t have it installed. However we left
setuptools installing because the feature you lose if you don’t have it
pre-installed is the ability to install from sdists entirely. It was
determined that not being able to install from sdists was a large enough
“breakage” that considering setuptools a dependency of pip in the terms
of ensurepip was considered better than minimizing the things we bundled.

On the flip side, the thing you lose if you don’t have wheel installed is
more like a “nice to have” than something that breaks functionality that
most people would consider mandatory in the current landscape.

Donald Stufft  
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

More information about the Python-Dev mailing list