Anaconda 环境更改回退方法
Anaconda 环境更改回退方法
2023年7月14日
摘要
在使用 Anaconda 时,时常会不小心装上一些不应该装的库,导致冲突,此时如果直接删除环境重装的话,很容易漏装或者忘记之前装过哪些库。更常见的问题是,在安装某些库时忘记了切换到虚拟环境,导致 base
环境里经常会多一些乱七八糟的库,而此时如果重装 Anaconda 又显得过于小题大做。本文提供了一种方法用以回退对环境的更改。
粗暴的办法
在这里还是想提一下最粗暴的办法,就是删掉当前环境重新创建。首先关闭当前虚拟环境:
conda deactivate
然后删掉这个需要重装的环境:
conda uninstall -n ENV_NAME --all
接下来重新创建环境:
conda install -n ENV_NAME
再激活环境:
conda activate ENV_NAME
并重装需要的包。
然而对于不小心装乱的 base
环境,我们就并不能直接删除 base
再重新创建了。当然,卸载 Anaconda 整个全部重装也是个充满暴力美学的方案,不过一般不推荐。
优雅的回退
查找更改记录
Anaconda 给用户提供了一个命令可以查找环境的历史更改记录:
conda list --revisions
此命令可以列出当前所在环境的历史更改记录,每一条更改记录后面我们可以找到一些类似 (rev 0)
的标记,我们可以通过这个标记来进行回溯。
当然我们也可以在任意一个环境中查看别的环境的历史记录,只需要用以下命令提供它的名字:
conda list -n ENV_NAME -r
可以得到一样的结果。
回溯更改
在经过上一个步骤的查找过后,假如我们看到 rev N
是我们想回溯的版本(其中 N 代表一个数字版本号),那么我们可以进入需要回溯的虚拟环境,然后执行以下命令:
conda install --revision N
即可回到指定的历史版本。
限制条件
Anaconda 只会在调用 自身的 conda
命令安装或移除库的时候时才会更新内部数据库,记录更改。然而,如果在 Anaconda 虚拟环境中使用 pip
或者手动安装了别的库,等于绕开了 Anaconda 的监管,这种境况下的更改将不会在历史记录中体现,也无法回溯。
License:
CC BY 4.0