classification
Title: python uninstaller leave registry entries
Type: behavior Stage: needs patch
Components: Installation Versions: Python 3.1, Python 3.2, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: donovaly, loewis, r.david.murray, tebeka, techtonik
Priority: low Keywords: easy

Created on 2008-09-04 21:08 by donovaly, last changed 2014-02-03 17:04 by BreamoreBoy.

Messages (13)
msg72520 - (view) Author: (donovaly) Date: 2008-09-04 21:08
- install Python 2.5.2 using the Windows installer
- now uninstall Python

Result: The uninstaller doesn't remove the registry folder
HKLM\SOFTWARE\Python
and all its subfolders.
msg102116 - (view) Author: anatoly techtonik (techtonik) Date: 2010-04-01 17:59
Confirmed 2.6.5 installer leaves "HKLM\SOFTWARE\Python\PythonCore\2.6\Modules" on install/uninstall without \2.6\ key.

I propose to mark it as 'low' priority.
msg102121 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-04-01 18:26
I imagine this affects 3.1 and 3.2 as well, but I haven't added them to versions since that hasn't been confirmed.
msg102126 - (view) Author: Brian Curtin (brian.curtin) * (Python committer) Date: 2010-04-01 19:30
Confirmed on 3.x.
msg102141 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2010-04-01 23:44
FWIW: contributions are welcome.
msg102165 - (view) Author: Michael Foord (michael.foord) * (Python committer) Date: 2010-04-02 13:20
Isn't there an issue around having multiple versions of Python installed? The top level folder should only be removed if the version of Python being uninstalled is the last installed Python. This means executing code on uninstall and doesn't seem worth the effort.  

If I'm correct in this then I would suggest closing as wontfix.
msg102166 - (view) Author: anatoly techtonik (techtonik) Date: 2010-04-02 13:48
The top level should be removed only when it is empty after Python that is being uninstalled removed its own branch.
msg102167 - (view) Author: anatoly techtonik (techtonik) Date: 2010-04-02 13:50
There should be a "function" to remove key if empty.

BTW, what software is used to create (un)installer and where is Python code for it?
msg102169 - (view) Author: Brian Curtin (brian.curtin) * (Python committer) Date: 2010-04-02 13:54
See PC/_msi.c, Lib/msilib, and Tools/msi
msg102275 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2010-04-03 15:34
I think Installer has features to remove registry keys with no subkeys; we probably would need to declare that we create these keys, and then Installer might remove them automatically.
msg187307 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2013-04-18 22:46
I don't think this is worth the bother.  I've checked my registry and the only entry under HKLM\SOFTWARE\Python is PythonCore, under this are the following.

2.6
   Help
      Pythonwin Reference
         C:\Python26\Lib\site-packages\PyWin32.chm
   Modules
2.7
   Help
      Pythonwin Reference
         C:\Python27\Lib\site-packages\PyWin32.chm
   Modules
3.1
   Modules
3.2
   Modules
3.3
   Help
      Main Python Documentation
         C:\Python33\Doc\python331.chm
   Install Path
      Install Group
         Python 3.3
   Modules
   PythonPath
      C:\Python33\Lib;C:\Python33\DLLs

Only 3.3 is live on my machine.  Clearly the pythonwin keys aren't our responsibility.  It's hardly a lot of data anyway so why worry about it?  Yes I'm aware that it's good practice to clean up after yourself but in this case is it really worth the effort?
msg187365 - (view) Author: anatoly techtonik (techtonik) Date: 2013-04-19 14:57
What is the reason for not following the good practice? Is it so hard to fix?
msg194082 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2013-08-01 15:44
Nobody has contributed a patch in five years, so it apparently is pretty hard.
History
Date User Action Args
2014-02-03 17:04:13BreamoreBoysetnosy: - BreamoreBoy
2013-08-01 15:44:14loewissetmessages: + msg194082
2013-04-19 15:09:37brian.curtinsetnosy: - brian.curtin
2013-04-19 14:59:43michael.foordsetnosy: - michael.foord
2013-04-19 14:57:14techtoniksetmessages: + msg187365
2013-04-18 22:46:27BreamoreBoysetnosy: + BreamoreBoy
messages: + msg187307
2010-09-07 03:27:28brian.curtinsetnosy: + tebeka

versions: - Python 2.6
2010-09-07 03:26:48brian.curtinlinkissue1479626 superseder
2010-04-03 15:34:33loewissetmessages: + msg102275
2010-04-02 13:54:08brian.curtinsetmessages: + msg102169
2010-04-02 13:50:18techtoniksetmessages: + msg102167
2010-04-02 13:48:21techtoniksetmessages: + msg102166
2010-04-02 13:20:21michael.foordsetnosy: + michael.foord
messages: + msg102165
2010-04-01 23:44:07loewissetmessages: + msg102141
2010-04-01 19:30:47brian.curtinsetmessages: + msg102126
versions: + Python 3.1, Python 3.2
2010-04-01 18:26:03r.david.murraysetpriority: low

type: behavior
versions: - Python 2.5
keywords: + easy
nosy: + r.david.murray, loewis, brian.curtin

messages: + msg102121
stage: needs patch
2010-04-01 17:59:22techtoniksetnosy: + techtonik

messages: + msg102116
versions: + Python 2.6, Python 2.7
2008-09-04 21:08:13donovalycreate