Assume we’ve installed Flask as shown in the section Upgrading existing installed distributions.
To uninstall distributions, you can invoke the
uninstall command (which has
remove) as in the following example:
$ distil -e e2 remove werkzeug Removal cannot proceed: other software needs what you are trying to remove: Flask (0.9)
As you can see,
distil correctly stated that Werkzeug can’t be removed, as
it would leave Flask in a non-working state. The same thing happens with the
other Flask dependency, Jinja2:
$ distil -e e2 remove jinja2 Removal cannot proceed: other software needs what you are trying to remove: Flask (0.9)
However, if we try to uninstall Flask,
distil doesn’t complain, but
helpfully offers to remove Werkzeug and Jinja2 as they will no longer be
required once Flask is gone:
$ distil -e e2 remove flask The following distributions will not be needed any more: Jinja2 (2.6) Werkzeug (0.8.3) Remove them too? (y/n)
If we confirm that we want to do this, a final prompt showing what would be removed is displayed:
The following directories will be removed: e2/lib/python2.7/site-packages/flask e2/lib/python2.7/site-packages/Flask-0.9.dist-info e2/lib/python2.7/site-packages/jinja2 e2/lib/python2.7/site-packages/Jinja2-2.6.dist-info e2/lib/python2.7/site-packages/werkzeug e2/lib/python2.7/site-packages/Werkzeug-0.8.3.dist-info Proceed? (y/n)
If we say yes to this, the indicated items will be removed.
Uninstalling distributions installed with
In addition to removing distributions installed by itself,
distil can also
uninstall distributions installed by
pip. Let’s reset the environment and
install Flask into it using
$ reuse e2 $ e2/bin/pip install flask Downloading/unpacking flask Downloading Flask-0.9.tar.gz (481kB): 481kB downloaded ... (lines omitted for brevity) Successfully installed flask Werkzeug Jinja2 Cleaning up...
You can remove these individual distributions with
distil, but because
pip installation does not store information about which distributions
were installed by user request and which were installed as dependencies, you
don’t get as good a user experience:
$ distil -e e2 remove werkzeug The following directories will be removed: e2/lib/python2.7/site-packages/werkzeug e2/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg-info Proceed? (y/n) y Removal completed. $ distil -e e2 remove flask The following directories will be removed: e2/lib/python2.7/site-packages/flask e2/lib/python2.7/site-packages/Flask-0.9-py2.7.egg-info Proceed? (y/n) y Removal completed. $ distil -e e2 remove jinja2 The following directories will be removed: e2/lib/python2.7/site-packages/jinja2 e2/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg-info Proceed? (y/n) y Removal completed.
Command line reference –
Here is the complete help for
$ distil help uninstall usage: distil remove [-h] [-y] DIST [DIST ...] Remove one or more installed distributions. positional arguments: DIST The name of an installed distribution. optional arguments: -h, --help show this help message and exit -y, --yes Don't ask for confirmation of removals.