首先说下个人使用体验,经过个人亲测,发现在同类系统下,使用conda pack的方式应该是最不容易出现各种bug,而另外两种方式多少都会出现一些问题。
以下首先通过表格比较几种方式的优劣,之后再说明每种方法的使用步骤。

方法对比

conda packconda env exportspec-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

更多推荐