一、问题描述
1.1 问题
终端中直接使用指令conda creator -n xxx python=3.10创建新的虚拟环境时,新生成的虚拟环境相关文件不在Anaconda子目录envs中,而是在C盘,如下:
1.2 为什么默认安装到 C 盘?
Conda 的虚拟环境默认路径由配置项 envs_dirs 决定。默认情况下,envs_dirs 的优先级顺序为:
(1)用户目录下的 .conda\envs(即 C:\Users\你的用户名\.conda\envs)
(2)Anaconda 安装目录下的 envs(即 D:\app\anaconda\path\envs,你的 base 环境所在目录)
由于用户目录下的 .conda\envs 优先级更高,因此新创建的虚拟环境会默认安装到 C 盘。
二、解决方法:修改默认路径优先级
2.1 方法 1:临时指定路径(创建单个环境时使用)
创建环境时,通过 --prefix(或 -p)参数直接指定安装路径,无需修改全局配置。示例指令如下:
conda create -n Paddle2.6.2_Py3.10 --prefix D:\app\anaconda\path\envs\Paddle2.6.2_Py3.10 python=3.10
此方法的优点:灵活,不影响其他环境。缺点:每次创建新环境都需要手动指定路径。
2.2方法2:永久修改默认路径(推荐)
通过修改 Conda 配置文件 .condarc,将你期望的路径(D:\app\anaconda\path\envs)设为最高优先级。
2.2.1 查看当前 env_dirs 配置
打开终端,执行以下命令,查看当前虚拟环境的默认搜索路径,输出示例如下:
conda config --show envs_dirs
从我上图输出中可以看出,创建新的虚拟环境时,默认优先路径在C盘。
2.2.2 修改 .condarc 配置文件
.condarc 是 Conda 的全局配置文件,通常位于 用户目录下(如 C:\Users\24447\.condarc)。如果没有该文件,可手动创建。我自己电脑上的.condarc文件如下:
打开 .condarc 文件(用记事本、VS Code 等文本编辑器),如下:
添加或修改 envs_dirs 配置,将目标路径 D:\app\anaconda\path\envs 放在最前面(优先级最高):
补:路径需使用 正斜杠 / 或 双反斜杠 \\(Windows 系统),例如 D:/app/anaconda/path/envs 或 D:\\app\\anaconda\\path\\envs。
envs_dirs 是列表形式,顺序越靠前,优先级越高。
2.2.3 验证配置是否生效
保存 .condarc 后,重启终端,再次执行以下命令,确认目标路径已排在第一位:
conda config --show envs_dirs
输出示例如下,默认优先级被正确修改:
三、迁移已安装在C盘的虚拟环境到D盘中
3.1 复制虚拟环境文件夹
将 C 盘的环境文件夹 C:\Users\24447\.conda\envs\Paddle2.6.2_Py3.10 复制到目标路径 D:\app\anaconda\path\envs\。
3.2 更新 Conda 环境列表
打开终端,执行以下命令,让 Conda 识别迁移后的环境:
如果未识别到,执行以下命令手动更新:
conda env update --prefix D:\app\anaconda\path\envs\Paddle2.6.2_Py3.10 --prune
如果后期通过pip install安装时出现找不到路径问题,见我另外一篇博文:[复制Python虚拟环境后修改pip路径](https://blog.csdn.net/qq_40280673/article/details/136628142?ops_request_misc=%257B%2522request%255Fid%2522%253A%252239b99896129f49f8c0bc8b974797b50e%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=39b99896129f49f8c0bc8b974797b50e&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-136628142-null-null.nonecase&utm_term=%E5%A4%8D%E5%88%B6&spm=1018.2226.3001.4450)
3.3 删除 C 盘原环境
确认迁移成功后,建议学者删除 C 盘的原环境文件夹(C:\Users\24447\.conda\envs\Paddle2.6.2_Py3.10)以释放空间。
四、验证新环境的默认路径
修改配置后,创建一个新环境,验证是否默认安装到目标路径:
# 不指定--prefix,使用默认路径conda create -n test_env python=3.10
# 查看 test_env 的路径是否为 D:\app\anaconda\path\envs\test_envconda env list
4.1 新环境默认路径失败案例
通过上面设置后,新建虚拟环境,如果还是存在类型下面继续安装在C盘的情况,解决办法见本小节:
修改envs_dirs后新建环境仍跑到 C 盘,核心原因是:conda 的envs_dirs配置是 “优先级列表”,但 D 盘目标路径可能存在权限 / 写入问题,导致 conda 自动降级使用 C 盘路径。
4.1.1 修复 D 盘envs目录权限
D 盘envs目录权限不足:conda 没有 “写入 / 创建文件夹” 的权限。具体步骤如下:
(1)打开文件管理器,定位到D:\app\anaconda\path\envs;
(2)右键点击envs文件夹 → 选择 “属性” → 切换到 “安全” 标签;
(3)点击 “编辑” → 选择当前用户(24447) → 勾选 “完全控制”“修改”“写入” 等所有权限 → 点击 “确定” 保存;
(4)若没有当前用户,点击 “添加”,输入你的用户名(24447),赋予完全控制权限。
4.1.2 验证新建虚拟环境路径
打开新的终端,再次新建虚拟环境:
conda create -n Torch2.7.0CU12.8Py3.10_1 python=3.10
创建好后查看虚拟环境列表:
从上图可看出,修改 D 盘envs目录权限后,新建虚拟环境能默认存放到D盘了。
五、总结
本文介绍了如何解决Conda虚拟环境默认安装在C盘的问题,并提供了迁移已有环境的方法。