[Python-Dev] Packaging and binary distributions for Python 3.3

"Martin v. Löwis" martin at v.loewis.de
Fri Oct 14 17:11:18 CEST 2011


> One other aspect is that MSI format is essentially opaque (correct me
> if I'm wrong here).

You are wrong: msiexec /a unpacks an MSI extracts the files from the
MSI (documented as "administrative installation", meaning that the
result of it can again be installed, as it will also produce a
stripped MSI file with just the installation procedure).

> With bdist_msi, if I want to get the compiled
> binaries out for some reason (maybe to install them in a virtual
> environment or some type of other custom build) I just unzip the file
> - the exe header gets ignored. With bdist_msi, I have no idea if
> there's any way of doing that.

It's little known, but was always well supported. See also

http://www.python.org/download/releases/2.4/msi/

> Also, there are fewer people with expertise in MSI format.

That's certainly true.

> I suspect
> that even a Unix developer could have a go at modifying the C code in
> bdist_msi, it's not too MS-specific.

s/bdist_msi/bdist_wininst/

> I don't know if that's possible for bdist_msi.

No need to modify C code - it's all pure Python :-)

However, I agree that's beside the point: you do need to understand
MSI fairly well for modifying bdist_msi. I'm skeptical with your
assertion that a Unix developer could contribute to bdist_wininst
though without a Windows installation - you have to test this stuff
or else it will break.

> Speaking personally, the msilib documentation is pretty
> unreadable, as I don't know anything about the MSI format. Whenever
> I've tried reading the MS documentation in the past, I've found it
> pretty impenetrable (a link to a simple tutorial, and some examples of
> use, in the msilib documentation might help).

If somebody would volunteer to write a tutorial, I could provide input.
I'm clearly unqualified to write such a document, both for language
barrier reasons, and because I continue to fail guessing what precisely
it is that people don't understand.

Regards,
Martin


More information about the Python-Dev mailing list