Conda 被称为 Python 和 R 包的包管理器,由 Anaconda, Inc. 和 conda-forge(conda Python 包的开源社区)提供。除了管理包,Conda 还是一名环境经理。如果您不熟悉 Python,环境会创建一个隔离的环境来管理项目中的依赖项。由于包的 Python 生态系统既广泛又深入,因此 Conda 的部分工作是安装彼此不冲突的包。
设置项目环境并编写和测试代码后,您可能希望将其移动到另一台计算机上。例如,您可能希望将 Web 应用程序移动到具有公共地址的服务器,或者将您经常使用的工具集复制到 USB 驱动器。您可能希望拍摄项目环境的快照作为备份。
Conda 提供了多种方法来维护和移动环境。
1、克隆
安装时,conda 会创建一个基本环境。但是,您也可以使用经常使用的软件包创建自己的基本环境。– -clone 选项将创建环境的克隆(或快照)
conda create --name snapshot --clone myenv
--name snapshot(新环境) --clone myenv(被克隆的环境)
2、环境中安装的包文件列表
如果需要在具有相同操作系统的计算机上重现环境,可以生成 spec 列表。例如,如果您正在教授一门课程,并且需要复制课程练习的环境,则 – -explicit 选项将生成一个包列表。要将环境规范写入文件:
conda list --explicit spec-list.txt
要重新创建环境:
conda create --name python-course --file spec-list.txt
3、Environment.yml
还可以使用 – -export 选项跨平台和操作系统共享项目环境,以生成 environment.yml 文件。规范列表和 environment.yml 文件之间的区别在于,environment.yml 文件不是特定于操作系统的,而是使用 YAML 进行格式化的。仅列出包名称,conda 由其根据包名称构建环境。另一个区别是 – -export 也包括使用 pip 安装的软件包,而 spec 列表则不包括。要导出 environment.yml 文件:
conda env export environment.yml
* 请注意,如果路径中有现有的 environment.yml 文件,conda 将覆盖该文件。要创建环境:
conda env create -f environment.yml
4、conda环境打包(离线部署项目)
Conda-pack 是一个命令行工具,用于存档 conda 环境,其中包括环境中安装的软件包的所有二进制文件。当您想要重现 Internet 访问受限或无法访问的环境时,这非常有用。上述所有方法都从各自的存储库下载包以创建环境。请记住,conda-pack 是特定于平台和操作系统的,并且目标计算机必须具有与源计算机相同的平台和操作系统。
要安装 conda-pack,请确保您位于 root 或 base 环境中,以便它在子环境中可用。Conda-pack 可在 conda-forge 或 PyPI 上获得。
conda-forge 中:
conda install -c conda-forge conda-pack
PyPI 的:
pip install conda-pack
要打包环境(my_env.tar.gz在当前文件夹路径下):
conda pack -n my_env
确定输出打包环境的名字:
conda pack -n my_env -o out_name.tar.gz
确定打包环境的路径:
conda pack -p /explicit/path/to/my_env
5、要安装环境:
5.1 把上文打包的环境移动到要安装的机器上,路径本机的anaconda/envs文件夹下
cd XXX/anaconda/envs
5.2 创建存放虚拟环境的文件夹
mkdir -p my_env
5.3 解压my_env.tar.gz 到my_env
tar -xzf my_env.tar.gz -C my_env
5.4 查看解压环境python版本,验证python
# 使用 Python 时无需激活或修复前缀。大多数 Python库可以正常工作,但需要清理前缀的内容
./my_env/bin/python
ctrl+z退出就行下一步
5.5 激活环境 这将把 `my_env/bin` 添加到路径中
source my_env/bin/activate
5.6 在环境中运行 Python
Python
ctrl+z退出就行下一步
5.7 清理活动环境中的前缀。注意,只要机器上已经安装了某个版本的 Python,也可以不激活环境而运行此命令。
conda-unpack
6、易出现的问题
出现找不到确定创建的环境时,说明环境中存在无法直接打包的包。例如llama_factory安装包与项目文件绑定,无法直接打包。可以先pip uninstall XXX 卸载,再使用
pip download llama_factory==0.8.3 -d you_data
用pip命令打包、安装