[Distutils] Q about best practices now (or near future)

Nick Coghlan ncoghlan at gmail.com
Thu Jul 18 09:57:14 CEST 2013

On 18 July 2013 16:45, Paul Moore <p.f.moore at gmail.com> wrote:
> On 18 July 2013 02:03, Donald Stufft <donald at stufft.io> wrote:
>> it's simple to upgrade the pip if the user requires a newer version
>> of pip using ``pip install --upgrade pip`
> Please don't gloss over the potential issues with upgrading in the face of
> in-use exe wrappers. We have a design for a solution, but as yet no working
> code. I expect to work on this, but my time is limited and I'm not at all
> sure there won't be issues still to resolve. (Obviously, anyone else is
> welcome to help, but it's a "windows issue", so I don't know how much
> interest there will be from non-Windows developers).
> Prior to the setuptools move away from 2to3, my standard response to anyone
> reporting issues with in-place upgrades of setuptools or pip (certainly on
> Windows, and in general anywhere else too) was "well, don't do that - remove
> and reinstall manually". Things are better now, but not yet perfect and I
> don't believe that there is a consensus that this is acceptable for a
> bundled pip.

Making in-place upgrades using "pip install --upgrade pip" reliable on
Windows is definitely the preferred solution, but it isn't a show
stopper if it isn't ready for 3.4.

Requiring that in-place upgrades be run as "python -m pip install
--upgrade pip" would be acceptable, so long as the direct invocation
("pip install --upgrade pip") was detected and a clear error thrown
suggesting the other command (this would be mildly annoying, but it's
still a substantial improvement over the status quo). Something like:

"Due to an unfortunate limitation of pip on Windows, direct upgrades
are not supported. Please run 'python -m pip install --upgrade pip' to
work around the problem."

Shipping an msi installer for pip (perhaps bundling with setuptools)
would also be an acceptable alternative. Bundling both with the
"Python launcher for Windows" installer is definitely something we
should consider for older versions (rather than updating the CPython
installer). Either way, Windows users are used to downloading and
running installers to get Python upgrades :)


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Distutils-SIG mailing list