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.

classification
Title: Installer fails when newer version of CRT is pending installation
Type: behavior Stage: resolved
Components: Windows Versions: Python 3.7, Python 3.6, Python 3.5
process
Status: closed Resolution: out of date
Dependencies: Superseder: Change Windows install to applocal UCRT
View: 32507
Assigned To: steve.dower Nosy List: ned.deily, paul.moore, steve.dower, tim.golden, zach.ware
Priority: high Keywords:

Created on 2016-12-06 17:39 by steve.dower, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (2)
msg282560 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2016-12-06 17:39
We just discovered an issue where CPython install can fail on Windows 8, 8.1 and Server 2012.

* do not install the recommended UCRT update
* install any other Windows Update that requires a reboot
* install the *latest* VC Redist and do not reboot
* install CPython

Because of the pending reboot, the UCRT update in the VC Redist will be queued but not installed. When we install CPython, because we don't find the UCRT we will try and install it, but because we install a slightly older version than the latest VC Redist we get 0x80240017 WU_E_NOT_APPLICABLE returned. Since this is an error code, we abort installation.

However, the correct action to take here is to continue installation, but trigger a mid-setup reboot before doing any of the custom actions that require Python to be installed (bootstrap pip, precompile stdlib) or require a reboot after install. We also need to do a reboot if our own installation of the UCRT requests it, since we may be the ones to queue the update.

At the very least, continuing with installation, failing the custom actions and telling the user to reboot and repair Python would also be less impactful than aborting. But I believe we can set it up to do that automatically.

Ned FYI, but I won't be forcing this in to 3.6.0. The workaround is fine for interactive installs (reboot your machine and try again) - it's only a problem when Python is being chained into a larger install (e.g. Visual Studio, or an automated deployment).
msg309593 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2018-01-07 01:36
This will be fixed by the change for 3.7, and it's enough of an edge case for 3.6 that I'm okay with not fixing it.
History
Date User Action Args
2022-04-11 14:58:40adminsetgithub: 73074
2018-01-07 01:36:14steve.dowersetstatus: open -> closed
superseder: Change Windows install to applocal UCRT
messages: + msg309593

resolution: out of date
stage: needs patch -> resolved
2016-12-06 17:39:51steve.dowercreate