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.

Created on 2008-12-15 22:28 by andybuckley, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (10)
msg77885 - (view) Author: Andy Buckley (andybuckley) Date: 2008-12-15 22:28
It would make package maintenance easier, as well as integration with other build systems e.g. autotools (necessary for projects where not everything is Python), if the distutils supported an uninstallation command, e.g. python setup.py uninstall This would presumably require monitoring of which files were installed where, and it's of course possible to do undesirable things, but exactly the same counter-arguments exist for autotools, and there the uninstall target is an important and useful feature for developers, once you know how to behave in a way to make it safe.
msg78488 - (view) Author: Tarek Ziadé (tarek) * (Python committer) Date: 2008-12-29 21:50
This would require a detailed description on how such a feature would work.
msg80601 - (view) Author: philobyte (philobyte) Date: 2009-01-27 00:24
python setup.py uninstall should do all the same processing as 'install' but whenever it gets to the point of copying a file to a system destination, it should instead unlink the destination. besides the obvious use, here is another one: when upgrading a package, and the new version no longer includes certain files, just installing the new version will leave leftovers of the previous version installed. using uninstall beforehand will clean out the cruft.
msg80633 - (view) Author: Tarek Ziadé (tarek) * (Python committer) Date: 2009-01-27 07:53
philobyte, this means you have to keep the source somewhere to be able to run setup.py uninstall. This is not handy imho. What about a uninstall registery in Python that keeps track of the files installed for each package ? this would let us have an uninstall command that could run on its own. "uninstall packagename"
msg80647 - (view) Author: Andy Buckley (andybuckley) Date: 2009-01-27 11:25
If an uninstall registry is feasible, the it could be neat. The suggested behaviour of unlinking known files based on the source directory is not all that inconvenient: it's by no means perfect, but it has its uses and is familiar to many, since it is how GNU autotools behaves.
msg80801 - (view) Author: Tarek Ziadé (tarek) * (Python committer) Date: 2009-01-30 00:39
I will continue to discuss this in distutils-SIG: Marc-André Lemburg proposed me to introduce the uninstall command from mxSetup.py (from mxBase, http://www.egenix.com/products/python/mxBase/) So I need to ask for opinions first
msg99870 - (view) Author: Toshio Kuratomi (a.badger) * Date: 2010-02-22 23:23
We're working on this as part of the distutils2 effort. Current distutils (version 1) will not support uninstall.
msg99873 - (view) Author: Toshio Kuratomi (a.badger) * Date: 2010-02-22 23:28
Targetting 3.3
msg115781 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2010-09-07 15:44
Status update: Josip implemented PEP 376 to provide the installation database and Alexis is working on distutils2.install_tools to provide an uninstall function. User-level tools like pip can reuse this code to provide an uninstall functionality.
msg139773 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2011-07-04 14:35
distutils2/packaging now provides a remove function and a pysetup remove command.
History
Date User Action Args
2022-04-11 14:56:42adminsetgithub: 48923
2011-07-04 14:35:14eric.araujosetstatus: open -> closed
versions: + Python 3.3, - 3rd party
messages: + msg139773

dependencies: - packaging: add tests for old versions cleanup on update
resolution: fixed
stage: resolved
2010-10-22 14:55:51eric.araujosetdependencies: + packaging: add tests for old versions cleanup on update
2010-09-29 23:54:10eric.araujosetversions: + 3rd party, - Python 2.6, Python 2.5, Python 3.1, Python 2.7, Python 3.2
2010-09-07 15:44:42eric.araujosetnosy: + eric.araujo, alexis
messages: + msg115781
2010-06-03 14:47:24eric.araujosetkeywords: + gsoc
nosy: giampaolo.rodola, tarek, a.badger, andybuckley, philobyte
components: + Distutils2, - Distutils
versions: + Python 2.6, Python 2.5, Python 3.1, Python 2.7, Python 3.2, - Python 3.3
2010-02-22 23:28:43a.badgersetmessages: + msg99873
versions: + Python 3.3, - Python 2.6
2010-02-22 23:23:55a.badgersetnosy: + a.badger

messages: + msg99870
versions: + Python 2.6, - Python 2.5
2009-01-30 20:39:09giampaolo.rodolasetnosy: + giampaolo.rodola
2009-01-30 00:39:52tareksetassignee: tarek
messages: + msg80801
2009-01-27 11:25:11andybuckleysetmessages: + msg80647
2009-01-27 07:53:23tareksetmessages: + msg80633
2009-01-27 00:24:39philobytesetnosy: + philobyte
messages: + msg80601
2008-12-29 21:50:55tareksetnosy: + tarek
messages: + msg78488
2008-12-15 22:28:53andybuckleycreate