参考

  • https://www.jianshu.com/p/4ee474b648af
  • https://zhuanlan.zhihu.com/p/87344422

Conda 提供了多种复制项目环境的方法。 创建环境的克隆可以提供定制的基本环境或该环境的快照。spec list 和 conda-pack 可创建特定平台和操作系统的环境副本。 其中 spec list 使用网络来下载环境中特定的软件包,而 conda-pack 可以打包包括软件包二进制文件在内的整个环境,这在带宽不足或没有网络的情况下很有用。 Conda导出 environment.yml 的方式非常适合在不同平台和操作系统之间重新创建环境。spec-list方案生成的环境清单只包含采用conda安装的包,而不包含采用pip安装的包,而environment.yml 则包含环境内的一切包。

本地克隆、复制、转移、复现,无需网络下载

安装conda环境打包工具 【conda-pack】

  • Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。 当您想在有限或没有网络访问的系统中重现环境时,此功能很有用。上面的方法均从其各自的存储库下载软件包以创建环境。而此方法不需要。注意,conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统
  • 要安装 conda-pack,请确保您位于 root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。

conda本地备份环境 Clone

 conda create --name snapshot --clone myenv

其中, “snapshot" 和 ”myenv“是自定义的环境名

使用【conda-pack】【conda-forge】打包环境

# 把 “my_env”打包,默认以环境名对压缩文件进行命名,保存到此时的运行路径下
conda pack -n my_env

# 把 “my_env”打包,以 “out_name.tar.gz” 进行命名
conda pack -n my_env -o out_name.tar.gz

# 把 “my_env”打包,保存到指定路径下
conda pack -p /explicit/path/to/my_env

利用打包好的压缩文件复现环境

# Unpack environment into directory `my_env`
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env

# Use Python without activating or fixing the prefixes. Most Python
# libraries will work fine, but things that require prefix cleanups
# will fail.
./my_env/bin/python

# Activate the environment. This adds `my_env/bin` to your path
source my_env/bin/activate

# Run Python from in the environment
(my_env) $ python

# Cleanup prefixes from in the active environment.
# Note that this command can also be run without activating the environment
# as long as some version of Python is already installed on the machine.
(my_env) $ conda-unpack

conda 导出环境内包清单,通过网络下载复现环境

在相同操作系统计算机上复现环境 【Spec List】

仅仅包含使用conda安装的软件包

生成 spec list 文件:

生成的文件在conda运行的路径下

conda list --explicit > spec-list.txt

复现环境:

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

其中, “python-course”为自定义的环境名

不同的平台和操作系统之间复现项目环境 【Environment.yml】

  • environment.yml 文件不针对特定操作系统,并且使用YAML格式,仅列出了软件包名称,由 conda 基于软件包的名称构建环境,包含使用conda和使用pip安装的软件包

导出 environment.yml 文件:

生成的文件在conda运行的路径下

conda env export > environment.yml

复现环境:

conda env create -f environment.yml
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐