简体   繁体   中英

How to uninstall package in Anaconda installed with pip

The problem:

I have installed Anaconda:

conda -V
conda 4.4.7

Also I installed a lot of packages for it using python3 setup.py install . I used it for some packages created from setup.py files.

Now I want to uninstall one package.

What I tried:

pip uninstall packageName
pip3 uninstall packageName
conda uninstall packageName

It works for python: check pip list and pip3 list and there isn't such package.

Error:

But for conda I got this:

conda uninstall packageName
Solving environment: failed

PackagesNotFoundError: The following packages are missing from the target environment:
  - packageName

Let's check:

conda list
packageName

PS I found info that conda uninstall and conda remove doesn't work in this case. But what to do then?

PSS Actually I changed real package name at packageName but if this information is important I will add it.


My info:

conda info

     active environment : None
       user config file : /home/masamok4/.condarc
 populated config files : /home/masamok4/anaconda3/.condarc
                          /home/masamok4/.condarc
          conda version : 4.4.7
    conda-build version : 3.0.27
         python version : 3.6.3.final.0
       base environment : /home/masamok4/anaconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.continuum.io/pkgs/main/linux-64
                          https://repo.continuum.io/pkgs/main/noarch
                          https://repo.continuum.io/pkgs/free/linux-64
                          https://repo.continuum.io/pkgs/free/noarch
                          https://repo.continuum.io/pkgs/r/linux-64
                          https://repo.continuum.io/pkgs/r/noarch
                          https://repo.continuum.io/pkgs/pro/linux-64
                          https://repo.continuum.io/pkgs/pro/noarch
          package cache : /home/masamok4/anaconda3/pkgs
                          /home/masamok4/.conda/pkgs
       envs directories : /home/masamok4/anaconda3/envs
                          /home/masamok4/.conda/envs
               platform : linux-64
             user-agent : conda/4.4.7 requests/2.18.4 CPython/3.6.3 Linux/4.4.0-87-generic ubuntu/16.04 glibc/2.23
                UID:GID : 1003:1003
             netrc file : None
           offline mode : False

You can use Jupyter Notebook to solve this problem :

  • open Jupyter Notebook
  • open a new notebook with the right kernel
  • type !pip uninstall -y [package] in a code cell
  • run the cell code

If you installed the package using setup.py , then you will most likely have to delete the package files manually.

You'd find the Uninstalling setup.py install wiki useful. Unix instructions quoted below:

sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then in bash:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --

One has to be careful when using pip inside a conda environment, whether for installing and unistalling packages. What works for me is based on https://stackoverflow.com/a/43729857/1047213 .

  1. Install pip that is specific to the conda environment by running conda install pip inside the conda environment.
  2. Specify the entire path of that specific pip while installing or uninstalling a package. Usually, you will find it inside the bin folder of the virtual environment (eg, /anaconda/envs/venv_name/bin/ ). Thus, the following works for me: /anaconda/envs/venv_name/bin/pip install_or_uninstall package_name .

Definitely the best way to uninstall all pypi packages in a conda environment is:

conda activate <your-env>
conda list | awk '/pypi/ {print $1}' | xargs pip uninstall -y

As shown in conda uninstall -h detailed below,

--force-remove, --force
                        Forces removal of a package without removing packages
                        that depend on it. Using this option will usually
                        leave your environment in a broken and inconsistent
                        state.

So, I hold that your specific package packageName is not well installed. That is, its dependent packages are not well installed, so you want to uninstall the package packageName . Further, conda uninstall packageName failed, and you can try

conda uninstall packageName --force

, whose usage is the same as the commands pip uninstall packageName and pip3 uninstall packageName . That is "removal of a package without removing packages that depend on it".

Hope it works for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM