使用conda pack进行环境迁移

起因

起因是训练服务器为了安全期间,限制不能联网。而且想连接A100显卡的训练服务器必须通过堡垒机方可连接(即目标服务器既不能联网,也与本机不在同一个网段)

安装工具

首先,使用 conda env list 查看所有环境,要确保待迁移的环境不是默认的base环境(如果是base环境,要使用conda clone 命令复制成其它名字)

然后激活待迁移的环境,我这里的环境名为chatGLM,所以相应的激活命令为conda activate chatGLM

然后使用pip命令安装 pip install conda-pack

图片.png

打包原环境

使用 conda pack -n <环境名> 来打包环境(打包速度还是挺快的),打包后会生成一个 tar.gz 文件

图片.png

这里只花了3分钟就把我装了一天的环境打包好了

图片.png

将虚拟机环境上传到本机

注意:两个环境必须是相同的系统。例如我本机是centos,目标主机也是centos(如果你本机是window,安装的包可能不适用于centos,会导致迁移后无法正常使用)

虽然我本机是widnows,但是我使用Virtual box,搭建了一个centos的虚拟机,在虚拟机中安装anaconda,然后使用pip安装各自依赖

方案一:sz直接上传

Tabby终端支持的文件上传/下载命令

  • sz :ZModem协议来从Linux服务器传送文件到本地
  • rz :从本地上传文件到Linux服务器,可以使用rz命令

使用 sz <待拉取的文件路径> 将文件拉取到本地

图片.png

方案二:split切片后,sz上传

注意:文件比较大,sz命令在全部传输完成后,可能报错,可以用 split 命令进行切分

split -b 512M -d -a 1 chatGLM.tar.gz
  • -b 4096M 分割的每个压缩包大小为4G
  • -d 参数指定生成的分割包后缀为数字的形式
  • -a x来设定序列的长度(默认值是2),这里设定序列的长度为1

图片.png

切到 512M 后,可以上传,但偶尔还是会报错很不方便。虽然支持通配符,但是每次还是会询问你要保存的文件夹(无法设置一次,后面就默认使用该文件夹,不方便)

图片.png

方案三:Virtualbox安装辅助插件,共享文件夹

Virtual不能直接安装增强助手,参考了好几篇博客也不行,后面按照这篇的成功了。地址为:https://zhuanlan.zhihu.com/p/633877183

除了中文会有乱码,英文正常(使用 Tabby 或 XShell连接,不会存在乱码问题)

图片.png

然后使用mv命令,将文件拷贝到共享目录。拷贝后,切换到window端来看,可以发现,瞬间就出现了(比之前sz命令快太多)

图片.png

将本机环境压缩包上传至目标服务器

然后Tabby切换到目标服务器,使用 rz 命令将该文件上传到服务器

删除目标服务器同名环境

现在来到目标主机,使用 conda env list 查看当前所有的环境

然后使用 conda env remove -p <环境路径> 来删除同名环境

图片.png

还原环境

然后使用 conda env list 列出所有虚拟环境的路径

图片.png

我这里,anaconda3的环境变量路径为:/opt/anaconda3/envs/

在该路径下新建一个“虚拟环境名”的文件夹 mkdir /opt/anaconda3/envs/<虚拟环境名>

然后将赋予所有权限 chmod 777 /opt/anaconda3/envs/<虚拟环境名>

然后将刚刚上传的压缩包解压到该目录下,使用如下命令

tar -xzvf <环境变量压缩包>.tar.gz -C /opt/anaconda3/envs/<虚拟环境名>

查看结果

修改好后,使用 conda env list 可以查看到刚刚添加进去的环境

图片.png

然后使用 conda activate <虚拟环境名> 就可以激活该环境变量了

图片.png

使用 conda list 命令,可以查看我们之前安装的库到底是否都存在

图片.png

猜你喜欢

转载自blog.csdn.net/chy555chy/article/details/131832702