Any version bdist_msi for pure Python packages
A double whammy, courtesy of recent commits by Stephen Bethard and Tarek Ziade: not only is the available-but-undocumented bdist_msi packager now available-and-documented, but it also offers installation into multiple Python installations for pure Python packages. This means that, say, an installer for my Python-only WMI module can now be installed to any Python installation found in the registry. Not only that (which the bdist_wininst installer already offers), but it also offers you the chance to install to an arbitrary location (say if you have Python built under a Subversion checkout).
UPDATE: Brad Allen points out that bdist_msi already allows installation to an arbitrary location (which I didn’t think it did).
Brad Allen said,
Wrote on May 6, 2009 @ 2:18 am
Great! I’ve been using bdist_msi to distribute packages to customers who use Windows, so I’m glad it’s being maintained with new features being added.
However, I’ve had no problem installing to arbitrary Python locations (such as virtualenv directories), so I don’t understand the benefit of the new feature.
btw, any idea how to build an MSI installer containing multiple different eggs (each with its own setup.py)? Currently I am building MSI installers for all the third party libraries along with my own app, so my customer is getting a handful of different installers. It would be nice if I could build one big installer.
tim said,
Wrote on May 6, 2009 @ 8:13 am
@Brad: well, my memory obviously played me false — I thought I remembered that the MSI was previously tied to one version. Obviously not. Still, as you say, it’s always good to see some ownership and maintenance in the stdlib, and especially on the Windows side. The issue comments do point out that, with whatever changes have taken place under the covers, it should now be possible to add a “Change” button visible in “Add & Remove Progs” which would allow you to install all your existing modules for a new version of Python.
As to your building a joint MSI, I’m afraid I’m pretty much ignorant. Have you tried posting the question to the lists? Be interesting to see if someone had already solved the problem.