本文介绍: Anaconda创建虚拟环境可能会默认保存在C盘,但C盘的存储空间很宝贵,由于每个虚拟环境大小可能达到n个GB,稍不注意就会遇到C盘红色警告。因此有必要做点什么来拯救被虚拟环境占用的大部分空间!!!

安装了Anaconda之后,创建虚拟环境可能会默认保存C:ProgramDataAnaconda3envsC:Users用户名.condaenvs路径下,但C盘的存储空间很宝贵,由于每个虚拟环境大小可能达到n个GB,稍不注意就会遇到C盘红色警告。

解决思路

分析(如下图所示),可以知道在Anaconda 目录下主要是envspkgs两个文件夹占用了空间,这正是虚拟环境目录和包目录,若可以把这两个文件夹放到其他盘,则问题可得以解决
Anaconda目录空间占用分析

修改配置

在未进行任何配置之前,当我们创建新的虚拟环境时,虚拟环境的存放路径在C盘,如下图所示
默认配置下虚拟环境的存放路径

修改配置的步骤

1. 在C盘以外的磁盘创建2个目录

以我在D盘为例:
在D盘创建的2个目录

2. 编辑.condarc文件

.condarc文件默认存放在当前用户目录下,即C:Users用户目录下,若该目录下不存在文件,可手动创建一个。在该文件添加以下配置信息,分别将envspkgs文件夹指向新创建的路径旧的路径

envs_dirs: [D:Anaconda3envs, C:ProgramDataAnaconda3envs]
pkgs_dirs: [D:Anaconda3pkgs, C:ProgramDataAnaconda3pkgs]

下图标号1的是在步骤1中分别创建的2个文件路径,标号2的是当前已有的虚拟环境存放的文件路径。一定要将新创建的文件路径放在[]列表的第一位。

原因是:系统读取路径信息时,默认选择表中的第一个路径作为虚拟环境存放的路径,若第一个路径不存在,才会继续寻找后面的路径,将当前虚拟环境存放路径也加进来是为了以防第一个路径被误删,创建新的虚拟环境时,依然可以存放在自己指定的目录中,也是为了不妨碍当前已有的虚拟环境的使用,当然你也可以添加更多其他的备选路径。

配置文件及内容

你也可以打开Anaconda Navigator点击左上角的 File -> Preference按照下图标注的序号进行该步骤的配置,效果是一样一样的。

Anaconda Navigator配置

修改配置后

在修改了.condarc文件后,当我们创建新的虚拟环境时,虚拟环境的存放路径已经变为了D盘,如下图所示:
修改配置后新的虚拟环境的默认存放路径

一个有用的思考:是否可以将已有的虚拟环境移动到新的路径中?

答案可以,但有注意事项

  1. 测试步骤1:首先将.condarc添加的配置信息删掉,执行conda create -n test2默认配置下创建一个名为test2的虚拟环境,该虚拟环境自然就存放在了默认C盘。此时执行conda env list可以看到test2虚拟环境在C盘
    在默认配置下创建一个虚拟环境
  2. 测试步骤2:将C:ProgramDataAnaconda3envs下的test2文件夹剪切粘贴D:Anaconda3envs目录下,再执行conda env list命令,可以看到test2虚拟环境已不存在。很容易理解的是:由于.condarc文件未添加任何配置信息,test2文件夹已被转移到其他路径下,对于系统来说,相当于test2文件夹已被删掉,所以该虚拟环境不会再显示在列表中
    在这里插入图片描述
  3. 测试步骤3:将.condarc配置文件恢复到以下图1状态后,重新执行conda env list命令,可以看到test2虚拟环境,且此时它的路径信息已显示D:Anaconda3envstest
    图1.恢复配置信息
    图2

结论
anaconda不仅仅在创建新的虚拟环境时读取.condarc文件的配置信息。因此,倘若你想把现有的虚拟文件转移到别的磁盘目录下来拯救苟活着的C盘,请确保该目录在.condarc文件中存在,否则anaconda将会找不到转移后的虚拟环境。

如果你觉得此文对你有帮助,请记得 点赞 收藏 + 关注

原文地址:https://blog.csdn.net/Roach007/article/details/128768762

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_18165.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注