How to uninstall a package installed with pip install --user
Having tested this using Python 3.5 and pip 7.1.2 on Linux, the situation appears to be this:
pip install --user somepackageinstalls to
$HOME/.local, and uninstalling it does work using
pip uninstall somepackage.
This is true whether or not
somepackageis 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, with
In addition to the predefined user install directory,
pip install --target somedir somepackagewill install the package into
somedir. There is no way to uninstall a package from such a place using
pip. (But there is a somewhat old unmerged pull request on Github that implements
pip uninstall --target.)
Since the only places
pipwill ever uninstall from are system-wide and predefined user-local, you need to run
pip uninstallas the respective user to uninstall from a given user's local install directory.
Be careful though, for those who using
pip install --user some_pkg inside a virtual environment.
$ path/to/python -m venv ~/my_py_venv$ source ~/my_py_venv/bin/activate(my_py_venv) $ pip install --user some_pkg(my_py_venv) $ pip uninstall some_pkgWARNING: Skipping some_pkg as it is not installed.(my_py_venv) $ pip list# Even `pip list` will not properly list the `some_pkg` in this case
In this case, you have to deactivate the current virtual environment, then use the corresponding
pip executable to list or uninstall the user site packages:
(my_py_venv) $ deactivate$ path/to/python -m pip list$ path/to/python -m pip uninstall some_pkg
Note that this issue was reported few years ago. And it seems that the current conclusion is:
--user is not valid inside a virtual env's
pip, since a user location doesn't really make sense for a virtual environment.