必须用绝对路径,因为conda不解析相对路径或环境变量,仅识别完整、可访问的绝对路径;路径需存在、非只读、不带尾斜杠,含空格或中文须加双引号。

conda config --add envs_dirs 为什么必须用绝对路径
因为 conda 不解析相对路径或环境变量(比如 %USERPROFILE% 或 ~),写成 ./envs、~/anaconda3/envs 或 D:\myenvs(没加盘符)都会被忽略,甚至静默失败。它只认完整、可访问的绝对路径。
实操建议:
- 先在文件管理器里手动创建目标文件夹,比如
D:\CondaEnvs,确保路径存在且非只读 - 运行
conda config --add envs_dirs D:\CondaEnvs(注意:不能带尾部斜杠) - 如果路径含空格或中文,用双引号包裹:
conda config --add envs_dirs "D:\My Envs" - 执行后检查
conda config --show envs_dirs,确认新路径已排在第一位
修改后新建环境仍落在 C:\Users\用户名\.conda\envs 怎么办
这是最常见误判:你以为改了,其实 Conda 仍用了旧路径。根本原因是 envs_dirs 是一个列表,Conda 按顺序查找第一个可写的路径——哪怕你加了新路径,只要旧路径仍可写,它就优先用旧的。
排查与解决:
- 运行
conda config --show envs_dirs,看输出是否包含你的新路径,且排在首位 - 检查旧路径权限:进入
C:\Users\用户名\.conda\envs,右键 → 属性 → 取消“只读”勾选(若存在) - 临时禁用旧路径:用
conda config --remove envs_dirs C:\Users\用户名\.conda\envs(Windows)移除默认项 - 验证:执行
conda create -n test python=3.9,再用conda info --envs看test的路径是否落在新目录
.condarc 文件里 envs_dirs 和 pkgs_dirs 能一起设吗
能,而且推荐一起设。否则包缓存(pkgs_dirs)还留在 C 盘,长期下来照样吃空间。两者独立配置,互不影响。
操作要点:
- 先创建两个文件夹:
D:\CondaEnvs(环境)和D:\CondaPkgs(包缓存) - 分别执行:
conda config --add envs_dirs D:\CondaEnvsconda config --add pkgs_dirs D:\CondaPkgs - 注意:
pkgs_dirs改动后,已下载的包不会自动迁移;新环境安装时才会用新路径缓存 - 如果想清理旧缓存,手动删掉
C:\Users\用户名\AppData\Local\conda\conda\pkgs(删前确认无正在使用的环境)
用 conda create -p 指定路径创建的环境算不算“默认路径”
不算。conda create -p(或 --prefix)是单次覆盖行为,只对当前命令生效,不改变任何全局配置。它适合临时测试或隔离部署,但无法解决“每次都要输路径”的问题。
典型误用场景:
- 写了
conda create -p D:\envs\py310 python=3.10,以为以后所有环境都走 D 盘 —— 实际下次conda create -n foo还是回默认路径 - 删除该环境时得用完整路径:
conda env remove -p D:\envs\py310,不能用-n - 这种环境不会出现在
conda env list的“名称列”,只显示路径,管理成本更高











