pip is the package management system included in Python 2.7.9+ and 3.4+. It’s quite convenient to install packages, even though I’m not a big fan of having shitloads of packages around, particularly since their number can quickly grow to unreasonable proportions with all their dependencies. And as a matter of fact, pip installs package dependencies, but… it doesn’t uninstall those dependencies when you uninstall the package they were installed for.
For f***ing f*** sake.
Anyhow, there is a way to uninstall dependencies when uninstalling a package. It’s another package (which I believe has no dependencies itself), called pip-autoremove. So, basically, if you want to cleanly uninstall package “examplepackage”, you’d go:
pip install pip-autoremove pip-autoremove examplepackage -y
It’s worth noting that, normally, it should only remove unused dependencies. It actually even provides a feature to just list packages which are not a dependency of any other package (-L flag)
Since it’s so short, here is the help:
> pip-autoremove --help Usage: pip-autoremove [OPTION]... [NAME]... Options: --version show program's version number and exit -h, --help show this help message and exit -l, --list list unused dependencies, but don't uninstall them. -L, --leaves list leaves (packages which are not used by any others). -y, --yes don't ask for confirmation of uninstall deletions.
Aha.