Revision 1 as of 2008-09-25 16:14:43

Clear message

Rationale

The ability to uninstall packages installed by the install command is a long-time waited feature for distutils/setuptools. This document describe the design and features of such a facility.

An uninstall feature should be implemented for both distutils and setuptools: the setuptools uninstall command would then reuse the distutils one.

What should be the behavior of an uninstall command ?

distutils command

Problems to solve:

Possible solutions:

How to record the files installed

use the same facility as install --record to record the list of files to remove

Where to put the generated list

The list itself should be put in .egg-info (since it is built by both distutils and setuptools install command). The problem is how to get access to this list when several packages are installed (e.g. different site-packages, user vs system package, etc...). Several possible solutions:

Removing last installed version is a useful feature for people who follow some projects from svn, and get caught when some modules are renamed inside the package.

Maybe another useful features:

setuptools command

easy_install command

Central management for packages

A nice solution may be for python to have a centralized system to record installed packages. But how to deal with user python vs system python ? Putting some info into $HOME or equivalent cannot accomodate multiple python interpreters installed by users; putting them into a location 'owned' by the python interpreter is not usable when the python is system wide. More than likely to be hard to agree on implementation.

Unable to edit the page? See the FrontPage for instructions.