[Distutils] Executable wrappers and upgrading pip (Was: Current status of PEP 439 (pip boostrapping))

Noah Kantrowitz noah at coderanger.net
Mon Jul 15 00:09:51 CEST 2013


On Jul 14, 2013, at 3:06 PM, Nick Coghlan wrote:

> 
> On 15 Jul 2013 05:44, "Paul Moore" <p.f.moore at gmail.com> wrote:
> >
> > On 14 July 2013 18:06, Donald Stufft <donald at stufft.io> wrote:
> >>
> >> Wouldn't a .py file make the command `pip.py`` and not ``pip`` ?
> >
> >
> > Not if .py is a registered extension. What I can't remember is whether it needs to be in PATHEXT (which it isn't by default). The big problem here is that the behaviour isn't very well documented (if at all) so the various command shells act subtly differently. That's why I want to test, and why it won't be a 5-minute job to do so...
> >
> > But the various "replace the exe afterwards" hacks sound awfully complicated to me - particularly as pip doesn't control the exes in the first place, they are part of the setuptools console script entry point infrastructure.
> >
> > My strong preference here is to remove the current use of setuptools entry points, simply because I don't think the problem is solvable while pip doesn't control the exe management at all. That's a non-trivial change, but longer term maybe the best.
> >
> > Question for Nick, Brett and any other core devs around: Would python-dev be willing to include in the stdlib some sort of package for managing exe-wrappers? I don't really want pip to manage exe wrappers any more than I like setuptools doing so. Maybe the existing launcher can somehow double up in that role?
> 
> Not sure it fits the launcher, but having something along those lines in the stdlib makes sense (especially in the context of a pip bundling PEP).
> 
> Another option we may want to consider is an actual msi installer for pip (I'm not sure that would actually help, but it's worth looking into), as well as investigating what other self-updating Windows apps (like Firefox) do to handle this problem.

They do the "exec a helper executable that replaces the original" approach, which works fine for non-console apps since there isn't the problem of the shell getting confused :-/

--Noah



More information about the Distutils-SIG mailing list