![cover](https://img-blog.csdnimg.cn/img_convert/fad536e972e14ce4b37803185dc3b00c.png)
conda环境迁移的三种方式的优劣
使用conda pack的方式应该是最不容易出现各种bug,而另外两种方式多少都会出现一些问题。以下首先通过表格比较几种方式的优劣,之后再说明每种方法的使用步骤。
·
首先说下个人使用体验,经过个人亲测,发现在同类系统下,使用conda pack
的方式应该是最不容易出现各种bug,而另外两种方式多少都会出现一些问题。
以下首先通过表格比较几种方式的优劣,之后再说明每种方法的使用步骤。
方法对比
conda pack | conda env export | spec-list | |
---|---|---|---|
是否容易出一些小bug? | 否 | 是 | 是 |
是否数据量传输大? | 是 | 否 | 否 |
是否可以跨不同类型系统? | 否 | 是 | 否 |
conda pack使用及安装
# ========= 安装conda-pack包 =========
# 通常在conda-forge这个channel能找到这个包。
# 注意:这个包最好是安装在base环境下。
$ conda install -c conda-forge conda-pack
# ========= 跳转到目标环境 =========
$ conda activate obj_env
# ========= 打包环境 =========
# 将obj_env环境打包为obj_env.tar.gz
$ conda pack obj_env
# 将obj_env环境打包并重新命名为为new_env.tar.gz
$ conda pack -n obj_env -o new_env.tar.gz
# ========= 将环境传输到目标机器 =========
# 使用rsync通过端口号port_id传输obj_env.tar.gz压缩包到目标机器username@obj_ip的obj_dir文件夹下
rsync -av --progess 'ssh -p port_id' obj_env.tar.gz username@obj_ip:obj_dir/
# 命令解释:
# rsync -av --progress是rsync传输的常用选项且可以显示传输进度
# username@obj_ip即表示目标机器
# ssh -p port_id 用于指定端口号,有的机器在局域网环境下,所以在username@obj_ip的基础上还需要加上特定端口号才能定位到机器
# obj_dir表示目标目录
# ========= 将环境压缩包解压到anaconda3/envs/ =========
# 进入到目标机器上的anaconda3/envs/目录下,这里假定anaconda3在用户家目录下,压缩包obj_env.tar.gz也在家目录下
$ cd anaconda3/env/
# 在该目录下新建目录,目录名即是环境名Obj_env
$ mkdir obj_env
# 将家目录下的obj_env.tar.gz解压到anaconda3/envs/obj_env/
$ tar -xzvf obj_env.tar.gz -C ~/anaconda3/envs/obj_env/
# ========= 完成环境迁移 =========
conda env export
待续。
conda list --explicit > spec-list.txt
待续。
求点赞!求收藏!求关注!( •̀ ω •́ )y
更多推荐
所有评论(0)