This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author loewis
Recipients BreamoreBoy, ellipso, eryksun, loewis, ned.deily, steve.dower, terry.reedy, tim.golden, zach.ware
Date 2014-06-03.16:28:18
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1401812899.43.0.608884591834.issue21427@psf.upfronthosting.co.za>
In-reply-to
Content
Here is the rationale:

1. py.exe is a 32-bit binary installed into C:\windows, see PEP 397. It's in C:\windows so that it will be on the path for both 32-bit and 64-bit processes.
2. py.exe is installed by multiple installers (both 32-bit and 64-bit, and multiple versions of Python)
3. to do proper reference counting of the installations, the SharedDLLRefcount component flag is enabled for the py.exe component. As a consequence, py.exe will be removed when the last Python installation is uninstalled from the system.
4. there are two different reference counters for a file on Windows: a 32-bit reference counter and a 64 bit reference counter. A 64-bit installer would manipulate the 64-bit counter, and a 32-bit installer would manipulate the 32-bit counter.
5. by default, this would lead to py.exe disappearing after this sequence of installation steps:
   * install 32-bit 3.3
   * install 64-bit 3.4
   * uninstall 64-bit 3.4
   The 32-bit reference counter would still be 1, but the 64-bit uninstallation would only look at the 64-bit counter, removing the file
6. to prevent that, the component is marked as 64-bit even for the 32-bit installer, to manipulate the 64-bit reference counter.

The code contains a comment

# XXX does this still allow to install the component on a 32-bit system?

I never got to test this out of lack of a 32-bit Windows installation, apparently, it doesn't work.

As a work-around, the 32-bit installer could include an additional component installing py.exe, which would be a 32-bit component and be selected if the host system is 32-bit.
History
Date User Action Args
2014-06-03 16:28:19loewissetrecipients: + loewis, terry.reedy, tim.golden, ned.deily, BreamoreBoy, zach.ware, eryksun, steve.dower, ellipso
2014-06-03 16:28:19loewissetmessageid: <1401812899.43.0.608884591834.issue21427@psf.upfronthosting.co.za>
2014-06-03 16:28:19loewislinkissue21427 messages
2014-06-03 16:28:18loewiscreate