掌握Conda环境迁移的几种方式,从此不在重复配环境

2023-02-22 15:32:12 浏览数 (1)

Conda是广为熟知的包管理器和虚拟环境管理器。最近我在Github上找到一个项目花费了3天时间在服务器A上,配好了环境并跑通了模型,但由于服务器A短时间我用不了,于是自己就在另一台服务器上配环境,无奈配了一天也还是没配好,索性就上网了解到了 Conda 环境迁移的几种方式,结果就是 工作效率火箭式的上升,开心到飞起鸭。

一、环境迁移—情况1

我们在本地电脑已经配好了虚拟环境A,但是自己需要 备份环境A 或者 有人想省事直接使用我们配好的环境A,这种情况下,我们可以采用以下两种方式:

使用下面的conda命令 直接创建环境的快照或者备份:

conda create –name snapshot –clone myenv

1

直接把 环境A 复制下(然后改个文件名就好)就OK了。

二、环境迁移—情况2

我们在本地电脑已经配好了虚拟环境A,如果我们需要在具有 相同平台和操作系统 的计算机之间复制环境,第一种方式就是利用以下命令直接生成 spec list文件,具体操作如下。

生成spec list 文件

conda list –explicit > spec-list.txt

1

根据生成的 spec-list.txt 实现 环境的复制

conda create –name python-course –file spec-list.txt

1

第二种方式就是利用 conda-pack 命令直接对环境进行 打包。要想使用 conda-pack 包对环境打包实现环境迁移,我们需要提前安装一下 conda-pack包,conda-pack包是一个命令行工具,主要用于打包conda环境(包括环境中安装的软件包的所有二进制文件),此方法最好的地方就是 在没有网络的情况下仍可实现环境的复现,简直不要太优秀,下面说一下使用 conda-pack 的具体操作。

安装conda-pack包

conda install -c conda-forge conda-pack

1

或者

pip install conda-pack

1

使用 conda pack 命令开始打包环境

将名字为 my_env 的虚拟环境 打包为 my_env.tar.gz(默认就是这形式)

conda pack -n my_env

-o 就是给导出的虚拟环境重新命名,所以导出来的虚拟环境名字为 out_name.tar.gz

conda pack -n my_env -o out_name.tar.gz

指定虚拟环境包的输出路径

conda pack -p /explicit/path/to/my_env

三、环境迁移—情况3

我们在本地电脑已经配好了虚拟环境A,然后我们需要在 不同平台和操作系统 之间 复现环境,我们可以使用以下命令生成 .yml文件。

导出 environment_name.yml 文件

conda env export > environment.yml

1

利用生成的environment_name.yml 文件复现环境

conda env create -f environment.yml

1

总结:

Conda-Pack 打包环境方式在目标计算机无法联网或者网络不畅时很好用,而Conda导出 environment.yml 的方式非常适合在不同平台和操作系统之间重新创建环境。

未经允许不得转载:肥猫博客 » 掌握Conda环境迁移的几种方式,从此不在重复配环境

0 人点赞