Python | Conda pack 进行环境打包

人码图技术分享1299

conda 常用来执行虚拟环境配置和包管理工作,有时候需要将本地的环境一直到新的离线的机器上,可以使用conda-pack 进行conda 环境打包和分发。

安装

conda 安装

conda install conda-pack
# conda install -c conda-forge conda-pack

pip 安装

pip install conda-pack

使用教程

构建环境的操作系统必须与目标的操作系统匹配。这意味着在Windows上构建的环境不能重新定位到Linux。

命令行

完整的 CLI 文档在这里

一个常见的用例是在一台机器上打包一个环境,以分发给可能未安装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")
Conda-Pack — conda-pack 0.7.0 documentation
用conda-pack制作离线可移植python环境 | mlstars (shiratori3.github.io)


相关文章

服务器  应用框架。

服务器 应用框架。

nginx是服务器,web.py是web应用框架。简言之,前者封装对网络io的处理,后者负责具体应用的逻辑,解决的问题是不一样的。形象点呢,一个请求来了,nginx先把请求拦下来,发现要的是现成的东西...

Docker常用命令详解

Docker常用命令详解

docker daemon命令-docker运行可指定项详解docker attach命令-登录一个已经在执行的容器docker build 命令-建立一个新的imagedocker commit命令...

linux中用conda创建虚拟环境

linux中用conda创建虚拟环境

首先安装anaconda,使用wegt命令,下载sh文件官网链接:https://www.anaconda.com/products/individual下载命令:wget https://repo....

「Kubernetes」k8s 的基本使用指令

结构模型k8s 是经典的一对多模型,有一个主要的管理节点master和许多的工作节点slaver。当然,k8s 也可以配置多个管理节点,拥有两个以上的管理节点被称为 高可用。k8s 包括了许多的组件,...

mkvtoolnix封装操作

mkvtoolnix封装操作

mkvtoolnix命令行批量封装添加字幕及更改默认音轨mkvtoolnix命令行批量执行,添加字幕及更改默认音轨操作代码准备工具:mkvtoolnix v58以上,视频文件与相应的字幕文件(影视文件...

Docker 常用命令大全

Docker 常用命令大全

本文包括容器生命周期管理命令、容器操作命令、容器rootfs命令、镜像仓库命令、本地镜像管理命令和基础版本信息命令。容器生命周期管理命令run创建一个新的容器。# 使用docker镜像ngi...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。