anaconda虚拟环境默认路径的更改

Posted lhx滴xjq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了anaconda虚拟环境默认路径的更改相关的知识,希望对你有一定的参考价值。

一、查看所有虚拟环境及其路径(conda env list)

 二、查看虚拟环境默认位置(conda config --show)

        出来的内容向下滑,滑动到envs_dirs,这里显示的有三个路径,第一个就是虚拟环境默认的安装路径。

三、 添加环境路径(conda config --add envs_dirs D:/Environment_2023/Anaconda3/envs)

        这里假设初始时D盘路径排在第二的位置,C盘中的.conda\\envs路径排在第一(大部分时的情况),则系统默认是安装在C盘中的.conda\\envs路径(这也是一直让人烦恼的问题所在)。此时执行上述代码后,D盘路径会变到第一的位置,也就将默认路径进行了更改。

Ps: 上述代码本意为添加路径,由于路径已经存在,便调整至了第一的位置,删除路径对应为conda config --remove envs_dirs dir

四、尝试创建新的虚拟环境(conda create -n Work37 python=3.7)

         代码中Work37为虚拟环境的名字,后面的3.7为python的版本。注意创建虚拟环境时系统会对你进行询问,此时如果作为尝试,则不必输入y,直接输入n即可,因为系统已经将安装的路径告诉了你。如果想删除已经创建的环境,代码为(conda remove -n 环境名 --all)。

五、更改Anaconda3文件夹的属性

        如果上述路径已经变成了D盘(目标盘),恭喜已经成功。不放心的话可以自己创建一个虚拟环境再去利用(conda env list)查看他的路径。

        如果尝试创建环境时发现路径仍然没有变化,不用担心,很正常。原因是Anaconda3文件夹的属性问题。

        进入Anaconda3的属性界面,点击安全

        点击编辑

         将Users的权限全部允许(最后一个特殊权限可能无法点击,不过没有影响,将其余的点上就可以了)。之后点击确定,这里可能需要等一小会,完成后便可以了。

六、更改所有者

        如果在上述步骤中,点击确定后报错,提示“将安全性信息应用到以下对象时发生错误”,不要担心,也是正常现象。此时需要做以下步骤:

        在安全界面点击高级

       点击更改(可能需要赋予管理员权限,直接赋予即可)

         点击高级

        点击立即查找

       找到Everyone并点击确定

       点击确定

         勾选 “替换子容器和对象的所有者” 以及 “使用可从此对象继承的权限项目替换所有子对象的权限项目” 并点击确定。这可能会需要一段时间,完成后,在重复五中的步骤,你会发现点击确定不再报错,大功告成。

七、conda清理(conda clean -p)

        调整路径是为了给C盘腾出位置,注意偶尔也可以使用conda进行一下清理哦,这条指令的作用是删除没有用的包,图中就存在了2.76G的垃圾,直接输入y便可以删除。

拯救C盘一文搞懂Windows修改Anaconda默认的虚拟环境存放路径及其原理

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

解决思路

  • 方案1: 每次创建虚拟环境时手动指定存放路径
  • 方案2:修改Anaconda默认的虚拟环境存放路径
    很显然,方案2更讨喜。

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

修改配置前

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

修改配置的步骤

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

以我在D盘为例:

2. 编辑.condarc文件

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

envs_dirs: [D:\\Anaconda3\\envs, C:\\ProgramData\\Anaconda3\\envs]
pkgs_dirs: [D:\\Anaconda3\\pkgs, C:\\ProgramData\\Anaconda3\\pkgs]

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

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

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

修改配置后

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

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

答案:可以,但有注意事项

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

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

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

以上是关于anaconda虚拟环境默认路径的更改的主要内容,如果未能解决你的问题,请参考以下文章

conda创建python环境

在Anaconda虚拟环境中pip安装的包无法使用

Python:Anaconda安装虚拟环境到指定路径

拯救C盘一文搞懂Windows修改Anaconda默认的虚拟环境存放路径及其原理

如何更改默认的Anaconda python环境

怎么更改anaconda的默认路径