背景
在做项目过程,因为是在容器环境中开发的,有时会遇到容器重启,导致环境丢失问题,不得不花时间重新安装环境(环境总是最难的),为此想到将conda环境打包,保存到文件系统,后续即使容器重启,也可以直接解压环境压缩包,复原环境。
同样也适用于场景:
在服务器A上搭建好了conda虚拟环境,希望在服务器B上使用,重新再创建新环境,显然比较浪费时间,因此可以对服务器A已搭建环境打包迁移到服务器B上,解压后直接使用即可。
详情如下
使用conda pack进行环境迁移:
可以解决的问题
(1)自身服务器没有网络,但需要安装虚拟环境,可以从另一台可用的机器上迁移环境到本地
(2)自身环境有各种冲突或者无法定位的问题
直接将已有的,可用的conda环境进行打包,迁移到自己的机器;
操作示例
Step1 下载conda pack包
pip install conda-pack
下载成功:
Step2 打包环境
查看已有的虚拟环境:
conda info -e
执行打包命令:conda pack -n <conda-env>
例如:打包'py39'这个虚拟环境,生成一个tar.gz包:
note
若环境较大,可使用screen在后台下载,关闭当前terminal也不会终止打包过程:
创建后台进程:screen -S <name>
查看现有的screen: screen -ls
进入指定的screen: screen -r <screen_id>
退出但保持screen运行:ctrl+A+D
Step3 还原环境到新服务器
切换到自己的机器,解压打包的环境。
(1)切到anaconda/envs目录下,新建env文件夹:
(2)解压环境的压缩包到指定的env目录下:
Step4: 查看迁移结果
直接激活并进入环境就可以使用了:
至此,之前折磨了大半天因为"黑盒子"环境的问题终于解决了,代码成功run起来了!!!