项目场景:
使用普通用户在远程服务器的ubuntu系统中新建conda虚拟环境
问题描述
之前可以正常建立虚拟环境,但在改了一下默认路径之后就开始报错,提示如下
原因分析:
考虑是由于当前用户对于更改后的路径所属文件夹没有写入的权限,为验证猜想,登录root用户新建虚拟环境测试,果然可以正常建立。
解决方案:
- 修改文件读写权限
参考网上所看到的方法,使用命令行
sudo chmod a+w .conda
修改文件的读写权限,由于我已经更改了虚拟环境的默认存储路径,所以我还执行了命令行
sudo chmod a+w /opt/anaconda3/envs
文件权限修改完毕以后,再次尝试依然报错。由文件管理器直接找到文件夹查看属性,确定权限的确已经被修改过,所以这个方法对我没用。
- 使用sudo命令新建环境
由于root用户可以顺利新建环境,但不能所有人都用root用户,所以考虑让普通用户使用sudo命令获取root权限来建立,具体命令如下
sudo conda create -n lmx
此时会有提示如下图
不要着急,这时我们只需要指出conda所在位置即可,以我的conda路径为例,命令如下
sudo /opt/anaconda3/bin/conda create -n lmx
到这里我们就顺利新建出了名为lmx的虚拟环境,但还没有结束,在使用命令行删除这个虚拟环境时我又发现,普通用户同样无法轻易删除掉它。
与新建它时同样的,需要登录root用户,或者使用sudo命令获取root权限才能对它进行删除。
- 打开文件所有权限
上个方法虽然能用但太过麻烦 ,又看到一种直接打开文件所有权限的方法,所以试一下
代码如下
sudo chmod -R 777 /opt/anaconda3/envs
sudo chmod -R 777 /home/gnnu/.conda
后面的路径就是新建环境时提示没有权限的文件夹路径。修改过后再次测试,终于可以顺利新建虚拟环境了。