Conda 为包管理器和虚拟环境管理器。在配置完项目环境,进行了编写和测试代码,需要大量数据测试运行时,需要将其移至另一台主机上。Conda 提供了多种保存和移动环境的方法。
方法1:
scp拷贝法,直接将envs的环境文件夹,拷贝到目标主机上。
例如:
# scp -r -P 端口(目标主机使用端口) /opt/anaconda3/envs/gpt user@主机IP:/opt/anaconda3/envs/
拷贝完成后,赋予相应的权限。
方法2:
清单法Spec List,生成当前环境的组件清单,然后再进行重放安装。
生成 spec list 文件:
# conda list --explicit > 环境名-list.txt
重现环境:
# conda create --name 新生成的环境名称 --file 环境名-list.txt
也可以使用--export选项,导出生成yml文件。
conda env export > environment.yml
注意:如果当前路径已经有了 environment.yml 文件,conda 会重写这个文件
重现环境:
conda env create -f environment.yml
spec list 文件和 environment.yml 文件之间的区别在于: environment.yml 文件不针对特定操作系统,并且使用YAML格式。 environment.yml 仅列出了软件包名称,由 conda 基于软件包的名称构建环境。 另一个区别是 -export 还包括使用pip安装的软件包,而 spec list 则没有。
方法3:
打包法,Conda Pack
Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。要安装使用conda-pack,请确保您位于root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。 conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统。
安装,
conda-forge:
conda install -c conda-forge conda-pack
PyPI:
pip install conda-pack
使用,将当前环境打包到指定的路径
conda pack -p /path/to/envsbackup
恢复环境
tar -xzf pyenvs.tar.gz -C pyenvs
使用 Python
./pyenvs/bin/python
激活当前 Conda 环境
source pyenvs/bin/activate
在恢复的环境中,运行python
(pyenvs) $ python
清除活动环境中的前缀。
注意,该命令也可以在不激活环境的情况下运行
只要机器上已经安装了某个版本的Python。
(pyenvs) $ conda-unpack
完成环境的恢复。
以上3种方法,工作中用到了,总结一下。