Closed
Description
Bug report
Bug description:
# Add a code block here, if required
If you have a Windows machine with multiple versions of python installed the presence of a newer version of the installer can prevent updating the older python version installations.
For example installing in the following sequence, (all with install py launcher
checked (global or otherwise), tested with both 64 & 32 bit versions:
- Python 3.11.7 OK
- Python 3.12.1 OK (Updates Launcher)
- Python 3.11.8 Select Update or Customise with the py launcher ticked Part way through the install a pop-up is shown.
SelectOK
& Installation is wound back. Followed by:
The relevant section of the log reads:
[D824:8A50][2024-02-16T07:58:01]i325: Registering dependency: {02717f5c-724f-48a7-86c0-ee11d4de681c} on package provider: {8EEE1658-8844-4DAD-8A3B-7AF321C9A4FD}, package: tcltk_JustForMe
[D824:8A50][2024-02-16T07:58:01]i301: Applying execute package: launcher_JustForMe, action: Install, path: C:\Users\Gadge\AppData\Local\Package Cache\{8DFCF17F-8C82-4E21-96F1-B1777F61A757}v3.11.8150.0\launcher.msi, arguments: ' MSIFASTINSTALL="7" ADDLOCAL="DefaultFeature,AssociateFiles"'
[D824:8A50][2024-02-16T07:59:54]e000: Error 0x80070643: Failed to install MSI package.
[D824:8A50][2024-02-16T07:59:54]e000: Error 0x80070643: Failed to configure per-user MSI package.
[D824:8A50][2024-02-16T07:59:54]i319: Applied execute package: launcher_JustForMe, result: 0x80070643, restart: None
[D824:8A50][2024-02-16T07:59:54]e000: Error 0x80070643: Failed to execute MSI package.
[D824:8A50][2024-02-16T07:59:54]i351: Removing cached package: launcher_JustForMe, from path: C:\Users\Gadge\AppData\Local\Package Cache\{8DFCF17F-8C82-4E21-96F1-B1777F61A757}v3.11.8150.0\
[D824:8A50][2024-02-16T07:59:54]i329: Removed package dependency provider: {9E9F28A9-A7A6-4483-842C-07579F9D7FDD}, package: tcltk_JustForMe_d
- Running
py -0
results in:
$ py -0
-V:3.12 Python 3.12 (64-bit)
-V:3.10 Python 3.10 (64-bit)
-V:3.10-32 Python 3.10 (32-bit)
-V:3.9 Python 3.9 (64-bit)
So I have now lost my Python 3.11 installation! Not very happy at this point!
5. Re-running the installer, selecting Customize Installation
and unticking py launcher
will allow a successful installation but:
- Many users may not realise this option will resolve the issue!
- In controlled environments such as at my work an
unattend.xml
file or install script may prevent the user changing this option.
Possible Resolutions
There is more than one way that this issue could be handled. If a newer py launcher is present:
- Skip installing py launcher silently or with a message but not an error. Unlikely to actually cause a problem but may invalidate some test environments.
- Offer to downgrade py launcher or leave the newer one.
- Offer the option to skip py launcher or cancel install (with warning that old installation may be lost).
CPython versions tested on:
3.9, 3.10, 3.11, 3.12
Operating systems tested on:
Windows
Linked PRs
- gh-115554: Improved logic for handling multiple existing py.exe launcher installs #115793
- [3.12] gh-115554: Improved logic for handling multiple existing py.exe launcher installs (GH-115793) #116200
- [3.11] gh-115554: Improved logic for handling multiple existing py.exe launcher installs (GH-115793) #116201
umarbutler
Metadata
Metadata
Assignees
Labels
only security fixesonly security fixesonly security fixesonly security fixesbugs and security fixesbugs and security fixesAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error