问题:
我已经安装了蟒蛇:
conda -V
conda 4.4.7
我还使用python3 setup.py install
为它安装了很多软件包。我将它用于从setup.py
文件创建的一些包。
现在我想卸载一个包。
我尝试过:
pip uninstall packageName
pip3 uninstall packageName
conda uninstall packageName
它适用于python:检查pip list
和pip3 list
,没有这样的包。
错误:
但是对于康达,我得到了这个:
conda uninstall packageName
Solving environment: failed
PackagesNotFoundError: The following packages are missing from the target environment:
- packageName
让我们检查一下:
conda list
packageName
附言我发现在这种情况下conda uninstall
和conda 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。
- 通过在 conda 环境中运行
conda install pip
来安装特定于 conda 环境的pip
。 - 在安装或卸载包时指定该特定
pip
的整个路径。通常,您会在虚拟环境的bin
文件夹中找到它(例如,/anaconda/envs/venv_name/bin/
(。因此,以下内容对我有用:/anaconda/envs/venv_name/bin/pip install_or_uninstall package_name
.
如conda uninstall -h
的force-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 packageName
和 pip3 uninstall packageName
相同。也就是说,"删除包而不删除依赖于它的包"。
希望它对你有用。