背景:与同事进行工作交接,在服务器上想直接拷贝他的环境过来,直接复制anaconda3/envs里的环境包过来后续安装包的时候由于路径是原来的路径会安装到对方环境里,因此使用conda命令来进行环境克隆。
(Linux/服务器中)conda命令克隆(复制)对方环境主要方法有以下两种:
方法一:根据已有环境名复制生成的环境
假设需要克隆的环境是A,需要生成的新环境名为B:
conda create -n B --clone A
方法二:已知目标环境的路径复制生成新的环境
假设克隆的目标环境路径为D:\anaconda3\envs\py37,需要生成的新的环境名为B:
# 运行以下命令之前最好先运行cd ~,回到根目录进行以下操作
conda create -n B --clone D:\anaconda3\envs\py37
针对方法二有时会出现“ParseError: Could not parse explicit URL:…”的报错信息,此时可以参考以下链接进行解决:conda移植服务器其它用户的环境_服务器conda添加其他用户的-CSDN博客
作者这里搬运一下:
①首先进入其它用户的conda并激活需要移植的虚拟环境
假设他的环境地址在D:\anaconda3\envs\py37
cd D:\anaconda3\envs\py37
②在需要移植的虚拟环境内创建environment.yaml文件,文件名可以自拟,之后保持一致即可
假设保存到目录D:\temp下
conda env export > D:\temp\environment.yaml
如果显示没有权限的话可以找到他本人让他帮你生成
③返回根目录进行新环境的克隆
假设需要生成的新的环境名为B:
# 回到家目录
cd ~
# 克隆对方的环境
conda env create -n B -f D:\temp\environment.yaml
采用上述方法即方法二进行环境克隆时又会报“Solving environment: failed ResolvePackageNotFound: - cudatookit==11.31=h9edb442_10 - __glibc[version='>=2.17,❤️.0.a0”的错误,参考以下博客解决:解决创建conda环境时Solving environment: failed 和 ResolvePackageNotFound 的错误
搬运一下:
①打开environment.yml文件,将dependencies中的包,第二个等号后面的内容全部删除
②将文件修改完之后,进行保存。再次创建环境。
# 回到家目录
cd ~
# 克隆对方的环境(environment.yaml为修改后的文件)
conda env create -n B -f D:\temp\environment.yaml