[Distutils] Wheels and console script entry point wrappers (Was: Replacing pip.exe with a Python script)

Paul Moore p.f.moore at gmail.com
Tue Jul 16 22:13:03 CEST 2013

On 16 July 2013 20:21, Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:

> > defined in exports; it should be a five-minute job to ensure that
> scripts in
> > exports are excluded from this, when building wheels.
> It was a quick job, but thinking about it, I should probably update the
> Wheel.install API to take an optional process_exports=True argument, so
> that
> the exported-script processing can be done during installation from wheels
> in a standardised way.

I'm not 100% sure what your proposal is here - I'm confused about the
precise roles of setup.py/setuptools as "builder" vs distil as "builder" vs
distlib as "wheel builder" vs distlib as "wheel installer". I'll try to get
some time in the next day or so to review the code and make sure we're not
talking at cross purposes here. Bear with me.

I understood that distlib simply built wheels from whatever is in the
directories supplied. I'm not clear where it would get the "exports"
metadata to store in the wheel. Assuming that's sorted, though, then
whether or not distlib processes the exports on install is not an issue to
me (I think it always should). What is more of an issue is what "the thing
that puts stuff into the directories" does. If that's a setuptools-based
build, it will process the exports data *itself* and put wrappers into the
scripts directory. That is what I think we should be trapping and
suppressing. But we have to be careful, as if setuptools is used to install
directly, *not* going via a wheel, it has to generate wrappers itself

Using distil to do the build is a whole other route.

My main concern here is keeping a reasonable level of backward
compatibility/interoperability with all the assorted tools around. And in
particular with pip managing (but technically not *doing*) the builds and

I'll have a think, and do some code reviews, and try not get sucked into
sending more emails until I know the facts a bit more clearly :-)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130716/d42100da/attachment.html>

More information about the Distutils-SIG mailing list