Tom*_*ale 17 python conda miniconda
base?我在baseconda环境中安装了一堆机器学习包.
我现在已经创建了一个ml机器学习环境,并希望base通过删除那里安装的所有软件包来重置我的环境.
我试过了:
% activate base
% conda uninstall -n base --all
CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again
Run Code Online (Sandbox Code Playgroud)
显然,我无法从当前环境中删除包(?!),所以让我们先切换到我的ml环境:
% source activate ml
% conda uninstall -n base --all
CondaEnvironmentError: cannot remove root environment,
add -n NAME or -p PREFIX option
Run Code Online (Sandbox Code Playgroud)
好吧,我会用的-p......
% conda uninstall -p ~/.local/share/miniconda3 --all
CondaEnvironmentError: cannot remove root environment,
add -n NAME or -p PREFIX option
Run Code Online (Sandbox Code Playgroud)
如何卸载在所有已安装包base或root环境?
mer*_*erv 18
显然,我无法从当前环境中删除包(?!)
它不是那样,而是你不能删除基本环境,这就是--all旗帜的作用.您无法卸载base中的所有软件包,因为这是conda可执行文件所在的位置.相反,您要做的是卸载所有用户安装的软件包.一种方法是在安装任何用户包之前将环境恢复到原始状态:
> conda install --revision 0
Run Code Online (Sandbox Code Playgroud)
您还可以查找可能不那么回归的其他先前状态,但仍然可以删除您认为已经不必要累积的任何包.
> conda list -n base -r
最后,您可能希望立即升级conda,因为它还将还原对基础包的任何更新.
虽然以上是真正正确的方法,但我遇到了错误:
CondaRevisionError:无法恢复为0,因为:: contextlib2-0.5.3-py35_0不在repodata中.
顺便说一句,这种担心让我担心,因为它似乎表明我两年前的康茄达环境的状态不再可以从上游渠道的状态再现出来.我一直在假设这种可重复性是内置的.
无论如何,除了将所有版本0软件包与当前安装进行比较然后卸载差异之外,我不知道如何解决这个问题.
小智 13
I had the same problem as you did, this is what I did:
backup my conda-env:
i. activate the env i want keep, such as 'ml'
ii. type conda-env export > /path/to/save/file/environment.yml
激活base并将基础环境恢复为初始:键入conda install --revision 0,这应该需要一些时间......(这个命令没有恢复我所有的环境,只是基础环境)
加载您的 .yml 文件:键入 conda env create -f /path/to/save/file/environment.yml
如果您只想从已删除的环境中删除仍缓存在 中的未使用的包base,请发出
conda clean -a -y
Run Code Online (Sandbox Code Playgroud)
这清理了我的 74 GB base:)