python环境离线打包环境、离线环境迁移、离线环境复制、离线环境克隆
·
我们经常使用conda来管理自己环境,时间久了,环境中的依赖错综复杂,有的通过pip或者conda下载,有的是离线安装,有的是通过魔法下载。这时候如果要将本机环境复制到另一台计算机中就会非常麻烦,甚至另一台计算机无法联网,这时候可以使用conda-pack 进行conda 环境打包并迁移到其他计算机中。
一、安装
conda 安装
conda install conda-pack
pip 安装
pip install conda-pack
二、使用教程
构建环境的操作系统必须与目标的操作系统匹配。这意味着在Windows上构建的环境不能重新定位到Linux。
命令行
完整的 CLI 文档链接: link
一个常见的用例是在一台机器上打包一个环境,以分发给可能未安装conda/python的其他机器。
1.在源计算机上(根据需求三选一)
# 把虚拟环境 my_env 打包为 my_env.tar.gz
conda pack -n my_env
# -o 参数指定打包路径和名称,把虚拟环境 my_env 打包为 out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz
# 把某个特定路径的虚拟环境打包为 my_env.tar.gz
conda pack -p /explicit/path/to/my_env
2. 在目标计算机上
前缀(prefixstr):本文指到某一 conda 环境的路径
- linux
# 创建目录 `my_env`,并将环境解压至该目录
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env
# 使用python而不激活或修复前缀。
# 大多数 python 库可以正常工作,但需要处理前缀的部分将失败。
./my_env/bin/python
# 激活环境,同时这步操作会将路径 `my_env/bin` 添加到环境变量 path
source my_env/bin/activate
# 在环境中运行python
(my_env) $ python
# 从激活环境中清除前缀。
# 请注意,也可以在不激活环境的情况下运行此命令
# 只要机器上已经安装了某个版本的python。
(my_env) $ conda-unpack
# 此时,环境与您在此路径直接使用 conda 安装的环境完全相同。
# 所有脚本都应该工作正常。
(my_env) $ ipython --version
# 停用环境以将其从环境变量 path 中删除
(my_env) $ source my_env/bin/deactivate
- windows
新建 my_env 文件夹,将打包的my_env.tar.gz文件解压到该文件夹中。
使用 cmd 打开路径 my_env 所在路径
# 进入项目路径
cd C:\my_env
# 激活环境
.\Scripts\activate.bat
# 从激活环境中清除前缀。
.\Scripts\conda-unpack.exe
# 退出环境
.\Scripts\deactivate.bat
- Api 模式
conda-pack还提供了一个Python API,其完整文档可以在这里找到。
import conda_pack
# 把虚拟环境 my_env 打包为 my_env.tar.gz
conda_pack.pack(name="my_env")
# -o 参数指定打包路径和名称,把虚拟环境 my_env 打包为 out_name.tar.gz
conda_pack.pack(name="my_env", output="out_name.tar.gz")
# 把某个特定路径的虚拟环境打包为 my_env.tar.gz
conda_pack.pack(prefix="/explicit/path/to/my_env")
参考文献:
[1] 橙心, “Python | Conda pack 进行环境打包”, 知乎:https://zhuanlan.zhihu.com/p/540615230, 2022
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)