如何在使用 pip 安装的 Anaconda 中卸载软件包



问题:

我已经安装了蟒蛇:

conda -V
conda 4.4.7

我还使用python3 setup.py install为它安装了很多软件包。我将它用于从setup.py文件创建的一些包。

现在我想卸载一个包。

我尝试过:

pip uninstall packageName
pip3 uninstall packageName
conda uninstall packageName

它适用于python:检查pip listpip3 list,没有这样的包。

错误:

但是对于康达,我得到了这个:

conda uninstall packageName
Solving environment: failed
PackagesNotFoundError: The following packages are missing from the target environment:
  - packageName

让我们检查一下:

conda list
packageName

附言我发现在这种情况下conda uninstallconda remove不起作用的信息。但是那怎么办呢?

PSS 实际上我在packageName更改了真实的软件包名称,但如果此信息很重要,我会添加它。


我的信息:

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

你可以使用 Jupyter Notebook 来解决这个问题:

  • 打开 Jupyter 笔记本
  • 使用正确的内核打开新笔记本
  • 在代码单元格中键入 !pip uninstall -y [package]
  • 运行单元格代码

在 conda 环境中卸载所有 pypi 软件包的最佳方法绝对是:

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

如果使用 setup.py 安装软件包,那么您很可能必须手动删除软件包文件。

您会发现卸载 setup.py 安装维基很有用。下面引用的Unix指令:

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

在 conda 环境中使用 pip 时必须小心,无论是安装和取消包。对我有用的是基于 https://stackoverflow.com/a/43729857/1047213。

  1. 通过在 conda 环境中运行 conda install pip来安装特定于 conda 环境的pip
  2. 在安装或卸载包时指定该特定pip的整个路径。通常,您会在虚拟环境的bin文件夹中找到它(例如,/anaconda/envs/venv_name/bin/ (。因此,以下内容对我有用:/anaconda/envs/venv_name/bin/pip install_or_uninstall package_name.

conda uninstall -hforce-remove参数所示,

--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.

我感谢您的特定软件包packageName安装不好。换句话说,packageName依赖的软件包安装不好,但您想卸载packageName .所以conda uninstall packageName失败了。你可以试试

conda uninstall packageName --force

,其用法与命令 pip uninstall packageNamepip3 uninstall packageName 相同。也就是说,"删除包而不删除依赖于它的包"。

希望它对你有用。

最新更新