Python | Conda pack 进行环境打包

人码图技术分享1467

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)


相关文章

Python 虚拟环境venv详解

Python 虚拟环境venv详解

Python 虚拟环境主要是为不同 Python 项目创建一个隔离的环境,每个项目都可以拥有独立的依赖包环境,而项目间的依赖包互不影响,对Python 虚拟环境venv相关知识感兴趣的朋友一起看看吧+...

网络安全扫描工具

网络安全扫描工具

网络安全扫描工具是用于检测计算机系统、网络和应用程序中存在的安全漏洞和弱点的软件工具。在一般环境中,我们主要针对sql和html进行安全扫描,帮助开发人员优化提升系统环境的安全。以下是15个常用的网络...

「Kubernetes」k8s 的基本使用指令

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

Nginx代理Python项目

Nginx代理Python项目

创建django项目:服务器准备:主机ipweb02192.168.15.81、安装python3yum install python3 -y查看是否安装成功python...

centOS_7_mysql安装、防火墙配置手记

centOS_7_mysql安装、防火墙配置手记

centOS 7 mysql安装手记  (文中图片引用自网络,侵删!) 0.删除mariadbrpm -qa | grep -i mariadbrpm -e --nodeps mariadb-libs...

OpenStack架构

OpenStack架构

OpenStack架构OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计基本原则①按照不同的功能和通用性划分不同项目,拆分子系统按照不同的功能划分不同服务,并且服务之间相互隔离,只通过A...

发表评论    

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