[Distutils] What does it mean for Python to "bundle pip"?

Paul Moore p.f.moore at gmail.com
Tue Aug 20 10:51:15 CEST 2013


On 20 August 2013 09:13, Oscar Benjamin <oscar.j.benjamin at gmail.com> wrote:

> Paul wrote:
> > Given that the installer includes the py.exe launcher, if you leave the
> defaults, then at a command prompt "python" doesn't work. But that's fine,
> because "py" does. And if you have multiple versions of Python installed,
> you don't *want* python on PATH, because then you have to manage your PATH.
> Why bother when "py -2.7" or "py -3.3" does what you want with no path
> management? Once you want any *other* executables, though, you have to deal
> with PATH (especially in the multiple Pythons case). That is a new issue,
> and one that hasn't been thought through yet, and we don't have a good
> solution.
>
> From a user perspective I think that 'py -3.4 -m pip ...' is an
> improvement as it means I can easily install or upgrade for a particular
> python installation (I tend to have a few). There's no need to put Scripts
> on PATH just to run pip. I think this should be the recommended invocation
> for Windows users.
>

Thanks - I agree with you (IMO it would be nice to have pip.exe in PATH,
but it's not important enough to change the install process).

Some other points on how the various bundling approaches fit with the
Windows python installer:

1. Will the bundled pip go into the system site-packages or the user
site-packages? Does this depend on whether the user selects "install for
all users" or "install for just me"?
2. If pip goes into system site-packages, what happens with the
uninstaller? It doesn't know about pip, so it won't uninstall Python
cleanly. (Not a major point, you can delete the directory manually after
uninstalling, but it's untidy). Maybe the uninstaller should just
unconditionally delete all of site-packages as well as whatever files it
knows were installed. This is a "normal" issue when installing into the
system Python, but for people who avoid that and use virtualenvs (e.g. me
:-)) it's new (and annoying, as we'll never use the system pip in any
case...)

This raises another point - to an extent, I don't care about any of this,
as I routinely use virtualenvs. But if using pip to manage the system
python is becoming the recommended approach, I'd like to understand what
precisely the recommendation is so that I can see if it's better than what
I currently do - for instance, I've never used --user so I don't know if it
will be of benefit to me. I assume that this will go in the packaging user
guide in due course, but I don't know who will write it (does anyone have
the relevant experience? most people I know recommend virtualenv...)

Maybe the whole automatically bootstrapping on install should be optional
(albeit likely on by default) for people who don't want to install stuff
into their system python anyway?

Paul.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130820/63f401c6/attachment.html>


More information about the Distutils-SIG mailing list