-
-
Notifications
You must be signed in to change notification settings - Fork 33.1k
Description
Bug report
Bug description:
I was testing some custom builds of Python on Windows machines that don't have the Universal C runtime installed, and I discovered a problem with my builds that shows up in the official Windows installer as well. I receive an error when trying to install Python 3.13.7 on a fresh Windows 8.1 VM that does not have the Universal C runtime installed.

The install log contains the following, indicating that installing ucrt.msi
failed.
[0DDC:0ED0][2025-09-14T12:49:34]w343: Prompt for source of package: ucrt_AllUsers, payload: ucrt_AllUsers, path: C:\Users\adang\Downloads\ucrt.msi
[0DDC:0ED0][2025-09-14T12:49:34]i338: Acquiring package: ucrt_AllUsers, payload: ucrt_AllUsers, download from: https://www.python.org/ftp/python/3.13.7/amd64/ucrt.msi
[0E80:0E98][2025-09-14T12:49:35]i305: Verified acquired payload: ucrt_AllUsers at path: C:\ProgramData\Package Cache\.unverified\ucrt_AllUsers, moving to: C:\ProgramData\Package Cache\{A5AB937A-A96D-4BF8-BFAB-8702BA813A81}v3.13.7150.0\ucrt.msi.
[0E80:0E84][2025-09-14T12:49:35]i301: Applying execute package: ucrt_AllUsers, action: Install, path: C:\ProgramData\Package Cache\{A5AB937A-A96D-4BF8-BFAB-8702BA813A81}v3.13.7150.0\ucrt.msi, arguments: ' ALLUSERS="1" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" TARGETDIR="C:\Program Files\Python313"'
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: core_AllUsers at path: C:\ProgramData\Package Cache\{BE75E968-78F4-411D-92E4-73EC3043F7E4}v3.13.7150.0\core.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: exe_AllUsers at path: C:\ProgramData\Package Cache\{E4047598-558F-4468-8B53-9FCEF7F86E0D}v3.13.7150.0\exe.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: dev_AllUsers at path: C:\ProgramData\Package Cache\{96A23710-E014-4A5B-96A1-DE64AC37251B}v3.13.7150.0\dev.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: lib_AllUsers at path: C:\ProgramData\Package Cache\{A139F43E-8105-465D-AC80-28F349CBE08D}v3.13.7150.0\lib.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: test_AllUsers at path: C:\ProgramData\Package Cache\{6BD2B618-9A2B-47D9-B24B-2F05BD2768E4}v3.13.7150.0\test.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: doc_AllUsers at path: C:\ProgramData\Package Cache\{CFAAA24B-16EF-4D9D-80A5-F67798771571}v3.13.7150.0\doc.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: tcltk_AllUsers at path: C:\ProgramData\Package Cache\{A65B1339-6492-4CA4-AEB5-2B25A83A20B9}v3.13.7150.0\tcltk.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: launcher_AllUsers at path: C:\ProgramData\Package Cache\{8B8DEA15-D815-4CB1-AC10-4E7713F3DFA0}v3.13.7150.0\launcher.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: pip_AllUsers at path: C:\ProgramData\Package Cache\{CD31E178-F872-466B-A231-9C8AA53A89FD}v3.13.7150.0\pip.msi.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: compileall_AllUsers at path: C:\ProgramData\Package Cache\5DB71E6C62D8C3B4121E17DCFA4030A491BFC13E\py.exe.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: compileallO_AllUsers at path: C:\ProgramData\Package Cache\5DB71E6C62D8C3B4121E17DCFA4030A491BFC13E\py.exe.
[0E80:0E98][2025-09-14T12:49:35]i304: Verified existing payload: compileallOO_AllUsers at path: C:\ProgramData\Package Cache\5DB71E6C62D8C3B4121E17DCFA4030A491BFC13E\py.exe.
[0E80:0E84][2025-09-14T12:49:35]e000: Error 0x80070643: Failed to install MSI package.
[0E80:0E84][2025-09-14T12:49:35]e000: Error 0x80070643: Failed to execute MSI package.
[0DDC:0DE0][2025-09-14T12:49:35]e000: Error 0x80070643: Failed to configure per-machine MSI package.
[0DDC:0DE0][2025-09-14T12:49:35]i319: Applied execute package: ucrt_AllUsers, result: 0x80070643, restart: None
[0DDC:0DE0][2025-09-14T12:49:35]e000: Error 0x80070643: Failed to execute MSI package.
The file Python 3.13.7 (64-bit)_20250914124833_000_ucrt_AllUsers.log
contains the following excerpt.
=== Logging started: 9/14/2025 12:48:43 ===
MSI (s) (78:08) [12:48:43:382]: Note: 1: 2203 2: C:\Windows\Installer\inprogressinstallinfo.ipi 3: -2147287038
MSI (s) (78:08) [12:48:43:382]: APPCOMPAT: [DetectVersionLaunchCondition] Launch condition already passes.
MSI (s) (78:08) [12:48:43:382]: PROPERTY CHANGE: Adding ACTION property. Its value is 'INSTALL'.
MSI (s) (78:08) [12:48:43:382]: Doing action: INSTALL
MSI (s) (78:08) [12:48:43:382]: Note: 1: 2205 2: 3: ActionText
Action start 12:48:43: INSTALL.
MSI (s) (78:08) [12:48:43:382]: Running ExecuteSequence
MSI (s) (78:08) [12:48:43:382]: Doing action: FindRelatedProducts
MSI (s) (78:08) [12:48:43:382]: Note: 1: 2205 2: 3: ActionText
Action start 12:48:43: FindRelatedProducts.
MSI (s) (78:08) [12:48:43:398]: Doing action: AppSearch
MSI (s) (78:08) [12:48:43:398]: Note: 1: 2205 2: 3: ActionText
Action ended 12:48:43: FindRelatedProducts. Return value 1.
Action start 12:48:43: AppSearch.
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1322 2:
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1322 2:
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1324 2: . 3: 1
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1324 2: . 3: 1
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1322 2:
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1322 2:
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1324 2: . 3: 1
MSI (s) (78:08) [12:48:43:398]: Note: 1: 1324 2: . 3: 1
Last 4 lines repeated hundreds of times, snipped for brevity
MSI (s) (78:08) [12:48:43:492]: Internal Exception during install operation: 0xc00000fd at 0x00007FFFE243B8DA.
MSI (s) (78:08) [12:48:43:492]: WER report disabled for silent install.
MSI (s) (78:08) [12:48:43:492]: Internal MSI error. Installer terminated prematurely.
After trying to install some older Python versions using installers that I custom-built with Tools\msi\buildrelease.bat
, I found that the earliest version with this problem is Python 3.7.13 and that a regression was introduced in #31726 with the addition of the following line:
cpython/Tools/msi/ucrt/ucrt.wxs
Line 7 in 1c984ba
<PropertyRef Id="DetectTargetDir" /> |
It's not totally clear to me what this line is for, but I noticed that the change in question added it to some
.wxs
files under Tools/msi
and not others. I think that it should not have been added to ucrt.wxs
, because when I remove it, my custom-built installers no longer encounter this error. I can create a PR.
CPython versions tested on:
3.13
Operating systems tested on:
Windows
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status