[Python-Dev] PEP 397 (Python launcher for Windows) reference implementation

Vinay Sajip vinay_sajip at yahoo.co.uk
Tue Jul 5 17:43:53 CEST 2011


Michael Urman <murman <at> gmail.com> writes:

> You can certainly jump through all these hoops, but the pieces here
> are much more suited towards a component definition that can be shared
> among multiple products. If the component always installs to the same
> place, has the same GUID, and otherwise only changes by versions the
> exe, this is a completely safe correct use of one. Last I knew, msi.py
> allocates random GUIDs, so may or may not be suitable for generating
> this. If there is only rare need to update this exe, and msi.py has
> support for merge modules, that could be one approach.

I'm currently experimenting with a merge module approach: launcher_module.msm ->
launcher.msi, and x64 variants in separate .amd64.ms? files.

> My recommendation for distributing this: each .msi which wants to
> include it should have a component that includes the following. Note
> that each .exe (py, pyw) and each architecture (x86, x64) need their
> own component with their own static GUID.
>  * Defined unchanging GUID
>  * Defined target location (perhaps SystemFolder)

I'm doing that.

>  * msidbComponentAttributesSharedDllRefCount (cooperate with non-MSI
> installers), msidbComponentAttributesShared (keep highest version),
> and possibly msidbComponentAttributesPermanent flags set on the
> component

Thanks, that's interesting information. I'll read up about these. I'm a Windows
installer tyro :-)

>  * Versioned .exe (using a Windows version block)

I'm doing that, too.

>  * File association information

Currently I'm putting the file association information in the same component as
the files, since the registry values cross reference those files.

Regards,

Vinay Sajip




More information about the Python-Dev mailing list