修改conda默认环境目录失败:创建环境仍存于用户主目录
解决conda环境默认安装路径不符合预期的问题
从你提供的conda info输出里,我一眼就看到了核心问题:你的根环境/data/anaconda3标记为只读状态!这就是为什么你创建新环境时,conda自动 fallback 到用户主目录下的/home/tlinden/.conda/envs——因为它没有权限往/data/anaconda3/envs里写入新环境文件。
下面给你几个可行的解决办法,你可以根据自己的权限情况选择:
方法1:给目标环境目录添加写入权限
如果你的服务器允许,最直接的方式是让/data/anaconda3/envs目录对你开放写入权限:
- 如果你有sudo权限,可以执行:
或者更安全一点,只给你的用户/用户组开放权限:sudo chmod -R ugo+w /data/anaconda3/envs
注意:修改系统级目录的权限前,最好和管理员确认一下,避免影响其他用户的使用。# 把目录所属组改成你的用户组(替换成你的实际组名) sudo chgrp -R your_group /data/anaconda3/envs # 给组添加写入权限 sudo chmod -R g+w /data/anaconda3/envs
方法2:创建环境时手动指定路径
不想改权限的话,每次创建环境时用--prefix参数强制指定安装路径即可:
conda create --prefix /data/anaconda3/envs/EnvName python=3.6
激活这个环境的时候,也需要用完整路径:
conda activate /data/anaconda3/envs/EnvName
方法3:修改conda配置文件调整环境目录优先级
你也可以通过修改~/.condarc配置文件,确保/data/anaconda3/envs是conda优先查找的环境目录(前提是你已经解决了该目录的写入权限问题):
- 打开或创建
~/.condarc文件:vi ~/.condarc - 添加或修改以下内容:
envs_dirs: - /data/anaconda3/envs - /home/tlinden/.conda/envs - 保存后执行
conda info检查,确认envs_dirs的顺序已经调整,之后再创建环境就会优先使用第一个目录了。
另外提一句:你的conda版本是4.3.30,确实有点老旧了,如果权限允许的话,升级到新版本会有更稳定的体验:
conda update conda
不过因为根环境是只读的,可能需要用sudo来执行升级命令。
内容的提问来源于stack exchange,提问作者galinden




