[Python-Dev] Registry keys written by x64 installer
mhammond at skippinet.com.au
Fri Jul 13 09:23:34 CEST 2007
On Friday, 13 July 2007, Michael Urman wrote:
> Furthermore only one architecture may be set in the template summary,
> so an installer may be only one of i386, x64, and Intel64 (although
> the latter are assumed to also be able to run i386 binaries).
I suspect I'm still missing something here. The title of the page you
referenced before is "Using 64-Bit Windows Installer Packages" - I suspect
that is different than a 32-Bit installer package installing a 64bit
> Agreed. I was just making clear that I'm not familiar with what the
> MSI includes, and whether any of the components in a 64-bit install
> should be 32-bit or not. With the msilib code as is, it appears to be
> all or nothing, or rely on tweaking a global between calls to
Yes - that is a bit of a shame, as having 32bit components would allow more
flexibility (eg, allow a 64bit install of Python to work with an IIS
configured for 32bit extensions), but that's something we can deal with
later if necessary.
> If you just want to get to the keys it currently
> sets, there should be an override parameter that causes the registry
> API to read the 32-bit keys even in a 64-bit process, but I'm not
> familiar with using _winreg.
using _winreg is (almost) like using the API directly.
RegDisable[/Enable]ReflectionKey appears to let the 32bit process see the
real keys - I'm not aware of how 64bit apps would enable that reflection,
but it probably doesn't really matter for our purposes. In case anyone is
interested, I just made a patch to _winreg.c adding these 2 functions
(http://python.org/sf/1753245) in case anyone would like to review it.
> If there's interest and I can get pointers to where the MSI files are
> built, I can look into patching it. I don't have a convenient 64-bit
> Windows machine around to test any changes, though.
I think Tools\msi is what you are looking for, but hopefully Martin will
chime in. I'm more than happy to help test.
More information about the Python-Dev