How to uninstall a package installed with pip install --user
There is a --user
option for pip which can install a Python package per user:
pip install --user [python-package-name]
I used this option to install a package on a server for which I do not have root access. What I need now is to uninstall the installed package on the current user. I tried to execute this command:
pip uninstall --user [python-package-name]
But I got:
no such option: --user
How can I uninstall a package that I installed with pip install --user
, other than manually finding and deleting the package?
I've found this article
pip cannot uninstall from per-user site-packages directory
which describes that uninstalling packages from user directory does not supported. According to the article if it was implemented correctly then with
pip uninstall [package-name]
the package that was installed will be also searched in user directories. But a problem still remains for me. What if the same package was installed both system-wide and per-user? What if someone needs to target a specific user directory?
Having tested this using Python 3.5 and pip 7.1.2 on Linux, the situation appears to be this:
pip install --user somepackage
installs to$HOME/.local
, and uninstalling it does work usingpip uninstall somepackage
.This is true whether or not
somepackage
is also installed system-wide at the same time.If the package is installed at both places, only the local one will be uninstalled. To uninstall the package system-wide using
pip
, first uninstall it locally, then run the same uninstall command again, withroot
privileges.In addition to the predefined user install directory,
pip install --target somedir somepackage
will install the package intosomedir
. There is no way to uninstall a package from such a place usingpip
. (But there is a somewhat old unmerged pull request on Github that implementspip uninstall --target
.)Since the only places
pip
will ever uninstall from are system-wide and predefined user-local, you need to runpip uninstall
as the respective user to uninstall from a given user's local install directory.
example to uninstall package 'oauth2client' on MacOS:
pip uninstall oauth2client