To uninstall the package system-wide using pip, first uninstall it locally, then run the same uninstall command again, with root privileges. In addition to the predefined user install directory, pip install --target somedir somepackage will install the package into somedir.
Uninstall all the packages listed in the given requirements file. This option can be used multiple times. Don't ask for confirmation of uninstall deletions. Action if pip is run as a root user.
You can use pip uninstall -y -r <(pip freeze) to do everything in one go. @joeb yes we can do that way also.
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 using pip 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, with root
privileges.
In addition to the predefined user install directory, pip install --target somedir somepackage
will 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 pip
will ever uninstall from are system-wide and predefined user-local, you need to run pip 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
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_pkg
WARNING: 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 python
/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.
I strongly recommend you to use virtual environments for python package installation. With virtualenv, you prevent any package conflict and total isolation from your python related userland commands.
To delete all your package installed globally follow this;
It's possible to uninstall packages installed with --user
flag. This one worked for me;
pip freeze --user | xargs pip uninstall -y
For python 3;
pip3 freeze --user | xargs pip3 uninstall -y
But somehow these commands don't uninstall setuptools and pip. After those commands (if you really want clean python) you may delete them with;
pip uninstall setuptools && pip uninstall pip
Now you have clean python environment. You can create virtualenv and install the package inside them.
The answer is Not possible yet. You have to remove it manually.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With