classification
Title: Can't install Python3.8, 3.9, 3.10 various errors including 0x80070643
Type: crash Stage:
Components: Installation, Windows Versions: Python 3.10, Python 3.9, Python 3.8, Python 3.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: paul.moore, steve.dower, tim.golden, tps800, zach.ware
Priority: normal Keywords:

Created on 2021-06-10 07:28 by tps800, last changed 2021-06-11 18:26 by steve.dower.

Messages (2)
msg395510 - (view) Author: Thomas Schweikle (tps800) Date: 2021-06-10 07:28
Python Setup for python-3.8.10-amd64.exe, python-3.9.5-amd64.exe, python10.0b2-amd64.exe fails after exausting "No Python 3.8 installation was detected.", then again "No Python 3.8 installation was detected." next it tells about "Error 0x80070643 while installing".

Non of the workarounds you'll able to find will work.

Looking into the registry you'll find various entries like:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\0255A3B1CB3E0445EBD928E5D9ABECFD]
"8400E080C358BF9469DE03ED7FBAE643"="C:\\Program Files\\Python\\38\\Lib\\lib2to3\\fixes\\fix_funcattrs.py"

I could find ~300 entries for Python 3.8, ~400 entries for Python 3.9 and ~1000 entries for Python 3.10.

I've installed into a new windows 10, then removed Python 3.8 looked into the registry and found -- nothing. Tried the same, but this time installed Python 3.8 and Python 3.9 in parallel before removing Python 3.8 and then Python 3.9. Again nothing. Next try: installed Python 3.8.9, then Python 3.9.0. Next upgraded Python 3.8.9 to 3.8.10. Then upgraded Python 3.9.0 to 3.9.5. Then removed Python 3.8.10 and Python 3.9.5. Voila! Lots of entries!

Conclusion: the installer does what it is expected to do, as long as you install and then remove the same version. As soon, as you upgraded in between, then remove it will leave various entries in the registry behind and reinstalling will fail with error 0x80070643.

Your installer has to do its work different: do not upgrade an existing installation "in line", but backup necessary parts, then remove the existing installation, clean up registry, then install the new version, restore what you backed up before.
Seems the installer looses track of these registry entries if upgrades are done inline and later on these existing entries make reinstalling/upgrading impossible.
msg395655 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2021-06-11 18:26
Sorry, you've reported a range of issues here and it's not clear what the problem is.

Many many people (literally millions) have successfully installed Python on Windows with these installers, and even more (including most Microsoft products) use the installer toolkit that we use. Fundamentally, it works correctly. Most issues are due to problems or configuration settings on the target machine.

The installer file registration is handled by Windows, and is not ours to manage. If the OS is choosing to leave them there after removing the files, you'll have to report it to them.

Perhaps you could reproduce the issue, and then send all the Python log files from your %TEMP% directory? That should show us why your install is failing.
History
Date User Action Args
2021-06-11 18:26:50steve.dowersetmessages: + msg395655
2021-06-10 08:14:30xtreaksetnosy: + paul.moore, tim.golden, zach.ware, steve.dower
components: + Windows
2021-06-10 07:28:50tps800create