[Distutils] Q about best practices now (or near future)
Steve.Dower at microsoft.com
Sun Jul 21 17:07:35 CEST 2013
From: Paul Moore
> On 18 July 2013 08:57, Nick Coghlan <ncoghlan at gmail.com> wrote:
>> Shipping an msi installer for pip (perhaps bundling with setuptools)
>> would also be an acceptable alternative.
> I would suggest that this approach, if it were considered seriously, should be
> reviewed carefully by someone who understands MSI installers (not me!).
> Specifically, if I install pip via an MSI, then use "python -m pip install -U
> pip", will the "Add/Remove Programs" entry created by the MSI still uninstall
> cleanly? Broken uninstall options and incomplete package removals are a
> perennial problem on Windows, usually caused by messing with installed files
> outside control of the installer.
Also -1, and I've spent quite a lot of time writing MSIs recently...
It could be solved, but wheels are a better fix for the problems that people solve with MSIs. MSIs are also useless when virtualenvs are involved, since there's basically a guarantee that its metadata will get out of sync with reality as soon as someone deletes the virtualenv.
IMHO bundling pip (and all dependencies) with the installer is best. Any bootstrap script hitting the internet will need to pin the version, so you may as well include a zip of the files and extract them on install. That way you'll always get a pip that can upgrade itself, and if you do a repair install you'll get a working pip back.
More information about the Distutils-SIG