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

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

一、环境迁移—情况1

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

  1. 使用下面的conda命令 直接创建环境的快照或者备份:
	conda create --name snapshot --clone myenv
  1. 直接把 环境A 复制下(然后改个文件名就好)就OK了。

二、环境迁移—情况2

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

  1. 生成spec list 文件
	conda list --explicit > spec-list.txt
  1. 根据生成的 spec-list.txt 实现 环境的复制
	conda create  --name python-course --file spec-list.txt

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

  1. 安装conda-pack包
	conda install -c conda-forge conda-pack

或者

	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文件

  1. 导出 environment_name.yml 文件
	conda env export > environment.yml
  1. 利用生成的environment_name.yml 文件复现环境
	conda env create -f environment.yml

总结:

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

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年3月11日
下一篇 2023年3月11日

相关推荐