如何移除多余conda环境及包目录 使其不在conda config --show-sources显示
核心原因
你之前用的conda env remove命令本身就不会修改.condarc配置,这是conda的通用运行逻辑,和你所用的计算集群环境无关:
- 这个命令的作用是删除指定路径下存储的单个虚拟环境,执行后只会清空对应环境目录内的包文件、删除该环境实体,既不会自动删除父级目录,也不会同步改动
.condarc里写死的环境搜索路径、包搜索路径配置项。 - 你执行完删环境命令后仍然能在
conda config --show-sources输出里看到冗余路径,本质是这些路径条目还明文写在你的/home/user_number/.condarc文件里,和对应路径下有没有存环境、有没有存包没有任何关联。
修正配置的操作方法
要达到你要的单环境目录、单包目录的配置效果,直接通过conda自带的config命令移除冗余配置项即可,操作前如果那些冗余路径下还有你需要留存的旧环境、旧安装包,记得先迁移备份:
- 移除冗余的环境目录配置
conda config --remove envs_dirs /path/to/a/anaconda/envs2 conda config --remove envs_dirs /different_path/to/a/anaconda/envs
- 移除冗余的包目录配置
conda config --remove pkgs_dirs /path/to/a/anaconda/pkgs2 conda config --remove pkgs_dirs /different_path/to/a/anaconda/pkgs
- 执行完上述命令后,再运行
conda config --show-sources校验配置即可。
补充说明:你贴出的原始配置里
defaults频道末尾多了一个多余的}符号,如果执行配置命令时提示yaml格式错误,可以直接用文本编辑器打开/home/user_number/.condarc,手动删掉多余的大括号、删掉不需要的路径行,保存后conda会自动加载新配置,和命令操作效果完全一致。
如果那些冗余路径下的内容已经全部清空没有留存价值,也可以直接用rm -rf命令删除对应空目录释放存储空间。
内容的提问来源于stack exchange,提问作者AlexanderSupertramp
相关产品推荐
相关产品推荐

