classification
Title: 2.7 on Windows: all-users installation does not clear previous just-for-me installation
Type: behavior Stage: resolved
Components: Installation, Windows Versions: Python 2.7
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, paul.moore, pewscorner, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2019-10-20 12:51 by pewscorner, last changed 2019-10-21 20:12 by zach.ware. This issue is now closed.

Messages (4)
msg354997 - (view) Author: PEW's Corner (pewscorner) * Date: 2019-10-20 12:51
After upgrading Python 2.7.16 to 2.7.17 using the Windows x86 MSI installer, the new Python still reports itself as version 2.7.16:

D:\Python27>.\python.exe
Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:30:55) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys; sys.version_info
sys.version_info(major=2, minor=7, micro=16, releaselevel='final', serial=0)
>>>

The python.exe file is dated Oct. 19, but the python27.dll is dated Mar. 4, so doesn't seem to have been updated. Repairing or removing and reinstalling doesn't make any difference, so the old dll seems to be part of the new installation.
msg355000 - (view) Author: PEW's Corner (pewscorner) * Date: 2019-10-20 13:14
After experimenting a bit more, I found that the python27.dll is NOT part of the new installation, but is also NOT removed on upgrade or when uninstalling. After I manually deleted this dll, the new installation correctly reports itself as 2.7.17.

So the problem seems to be that the installer forgets to remove the old dll (and there is no new dll to overwrite it).
msg355083 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2019-10-21 16:43
Exactly where were the DLLs installed?

If you had previously done "just for me" and then this time did "all users", the python27.dll for 2.7.17 will be in C:\Windows\SysWow64, which has lower priority than the one in the same directory.

I won't be fixing or even reviewing any issues in the 2.7 installer at this point. If someone else identifies an easy fix, they're welcome to merge it, but if the problem was changing the mode of install then I'd rather leave this as user error (and be thankful that we've reduced the likelihood of that error since 3.5).
msg355102 - (view) Author: PEW's Corner (pewscorner) * Date: 2019-10-21 19:42
Yes, the dll now seems to have ended up in c:\windows\syswow64. I have no idea whether I chose "just for me" or "all users" last time (this is a general irritant when having to manually update software on Windows), but I did choose "all users" this time, so your hypothesis is probably correct.

Considering that the user has no easy way to make the correct choice, nor to anticipate the consequences of a wrong choice, the term "user error" doesn't feel right. :-) But I completely understand why you wouldn't want to put much effort into fixing something that is almost dead, and at least *I* now know how to fix the problem when it happens again.
History
Date User Action Args
2019-10-21 20:12:38zach.waresetstatus: open -> closed
stage: resolved
resolution: wont fix
title: Python 2.7.17 reports itself as 2.7.16 -> 2.7 on Windows: all-users installation does not clear previous just-for-me installation
2019-10-21 19:42:57pewscornersetmessages: + msg355102
2019-10-21 16:43:20steve.dowersetmessages: + msg355083
2019-10-20 15:04:49SilentGhostsetnosy: + paul.moore, tim.golden, zach.ware
components: + Windows
2019-10-20 15:03:11xtreaksetnosy: + benjamin.peterson, steve.dower
2019-10-20 13:14:16pewscornersetmessages: + msg355000
2019-10-20 12:51:18pewscornercreate