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: Add "full cleanup" checkbox to uninstaller
Type: enhancement Stage:
Components: Installation, Windows Versions: Python 3.11
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: paul.moore, steve.dower, terry.reedy, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2015-08-15 20:01 by steve.dower, last changed 2022-04-11 14:58 by admin.

Messages (4)
msg248649 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-08-15 20:01
On uninstallation, we should display a checkbox to aggressively clean up the install. This would include:

* delete the main registry key and all children, regardless of whether we created them or not
* delete the main install directory and all subdirectories and files

This may corrupt some programs, essentially those that install packages directly into a Python install or register their own search paths in the registry (which is actually a valid thing for them to do). There will be an extra confirmation prompt if the checkbox is selected, but it'll still be easier than finding all the paths and deleting them manually.
msg248650 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-08-15 20:02
(Terry - FYI as it was your suggestion, but feel free to un-nosy yourself if you want.)
msg248656 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-08-15 21:13
There are two problem scenarios, which might meed different solutions.
1. Cannot install x.y(.z) for the first time, or if it does install, it does not run.  Zap all may be appropriate.
2, Cannot upgrade installed x.y.z.  This seems to be due to corruption of z.y.z. The current solution seem to be to re-download x.y.z installer (if deleted), which means remembering .z.  Then fixing (maybe). Or zapping x.y.z and maybe fiddling with the registry?  I went through this once and it is mess, and not something for non-expert users.

Would it be sensible for installer to check for TCL_LIBRARY and if found, display value and mention that it might interfere with install?
msg248667 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-08-15 22:42
#2 should be fixed with the new installer (not necessarily the 3.5.0a/b/rc versions, but final 3.5.0->3.5.1 and upwards should be fine).

The problems with 3.4's installer seem to be largely due to the pip bootstrap being a critical part of uninstall. I've deliberately made the 3.5 uninstaller not fail if pip won't uninstall cleanly, which should allow upgrades to occur even if the previous install is corrupt.

Another workaround here is to go through Programs and Features, though sometimes it is possible for the entry to not appear. That should be fixed with 3.5 (at least through the supported ways of installing it), but as I'm not 100% sure what causes the issue with earlier versions I can't guarantee it yet.

There's actually a sizable list of environment variables that could cause problems (PYTHONPATH, PYTHONHOME, etc.), worse on Windows because it's so much more common to have multiple versions installed and to set system-level environment variables. Maybe adding a "Compatibility Check" page to the installer could be handy? It could check these, maybe look for build tools or runtime dependencies and provide links or help for fixing/getting them. Another great idea, but not sure when I'll personally have the time to implement it :)
History
Date User Action Args
2022-04-11 14:58:19adminsetgithub: 69061
2021-10-19 22:46:47iritkatrielsetversions: + Python 3.11, - Python 3.5, Python 3.6
2015-08-15 22:42:36steve.dowersetmessages: + msg248667
2015-08-15 21:13:27terry.reedysetmessages: + msg248656
2015-08-15 20:02:16steve.dowersetnosy: + terry.reedy
messages: + msg248650
2015-08-15 20:01:12steve.dowercreate