base
删除所有已安装的软件包?我在base
的conda环境中安装了一堆机器学习软件包。
我现在已经创建了一个ml
环境用于机器学习,并希望通过删除在那里安装的所有软件包来重置base
环境。
我尝试过:
% activate base
% conda uninstall -n base --all
CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again
显然,我无法从当前环境中删除软件包(?!),因此让我们首先切换到我的ml
环境:
% source activate ml
% conda uninstall -n base --all
CondaEnvironmentError: cannot remove root environment,
add -n NAME or -p PREFIX option
好吧,我将使用-p
...
% conda uninstall -p ~/.local/share/miniconda3 --all
CondaEnvironmentError: cannot remove root environment,
add -n NAME or -p PREFIX option
如何在base
或root
环境中卸载所有已安装的软件包?
答案 0 :(得分:10)
显然,我无法从当前环境中删除软件包(?!)
不是那样,而是您不能删除 base 环境,这是--all
标志的作用。您不能卸载 base 中的 all 软件包,因为这是conda可执行文件所在的位置。而是要卸载所有用户安装的软件包。一种方法是在安装任何用户软件包之前将环境恢复到原始状态:
> conda install --revision 0
您还可以查找其他以前的状态,这些状态可能不算回归,但仍然可以摆脱不必要的任何软件包。
> conda list -n base -r
最后,您可能需要立即升级conda
,因为它还会将所有更新都还原到基本软件包中。
虽然上述方法是正确的做法,但我遇到了错误:
CondaRevisionError:由于:: contextlib2-0.5.3-py35_0不在存储数据中,因此无法还原为0。
顺便说一句,这让我感到担心,因为它似乎表明两年前我的conda环境状态无法从上游渠道状态重现。我一直在假设这种类型的可重现性是内置的。
无论如何,除了将所有修订版0软件包与当前安装版本进行比较,然后卸载差异之外,我不知道一种解决此问题的干净方法。
答案 1 :(得分:1)
我遇到了与您同样的问题,这就是我所做的:
备份我的conda-env:
i。激活我要保留的环境,例如“ ml”
ii。输入conda-env export > /path/to/save/file/environment.yml
激活base
并将基本环境恢复为初始状态:键入conda install --revision 0
,这将需要一些时间...(此命令未恢复我所有的环境,仅恢复了基本环境)< / p>
加载您的.yml文件:键入conda env create -f /path/to/save/file/environment.yml
答案 2 :(得分:-2)
我通过这样做解决了这个问题
python3 -m ipykernel安装--user