python环境离线打包环境、离线环境迁移、离线环境复制、离线环境克隆

2023-10-27

我们经常使用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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python环境离线打包环境、离线环境迁移、离线环境复制、离线环境克隆 的相关文章

随机推荐

  • 哪些应用适合服务器虚拟化,哪些服务器和应用适合虚拟化?

    虚拟化如今很流行 你可能也想把你所有的物理机进行虚拟化 考虑到可移植性 部署和硬件利用等方面的好处 虚拟化的确是非常诱人的 不过 这并不意味着虚拟化是任何服务器或应用的最好解决方案 至少现在还不是 其挑战是如何判断到底哪些服务器和应用适合于
  • 优秀英语教材

    优秀英语教材的选择 本人是个学生 依照自己学习英语的经历发表一些浅见 请各位不要将以下内容做商业用途 误区 1 在我看来 简单地评判一本英语教材是否优秀 可以观察以下几点 1 有无CEFR欧洲标准评级 2 是否是近10年出版 3 是否是英美
  • 【磕盐随记】C++ CUDA编程的环境配置

    一 前言 最近写了个又臭又长的代码来验证idea 效果还行但速度太慢 原因是代码中包含了一个很耗时的模块 这个模块需要连续执行百次以上才能得到最终结果 经过实测模块每次执行消耗约20ms 而且两次执行之间没有先后关系 为了保证系统的实时性
  • VUE3 + TS + 父子组件传值

    VUE3 TS 父子组件传值 父组件 传入几个变量 并且有接受子组件函数 changeaddress
  • 【主席树启发式合并】【P3302】[SDOI2013]森林

    Description 给定一个 n 个节点的森林 有 Q 次操作 每次要么将森林中某两点联通 保证操作后还是个森林 要么查询两点间权值第 k 小 保证两点联通 强制在线 Limitation 1 leq n Q leq 80000 Sol
  • SpringBoot核心配置全面总结

    Spring Boot的核心配置文件用于配置Spring Boot程序 文件名字必须以application开始 这个既是底层源码的强制要求 也是SpringBoot的一种代码规约 有助于在开发层面利于代码规范管理 说明 以下内容接着i前面
  • Java中的Calendar日历API用法完全解析

    第一部分 Calendar介绍 Calendar 定义 public abstract class Calendar implements Serializable Cloneable Comparable
  • centos mysql jar 驱动包_JDBC连接Mysql数据库详解

    JDBC Java DataBase Connectivity 即Java数据库连接 简而言之 就是通过Java语言来操作数据库 我们可以把JDBC理解成是官方定义的一套操作所有关系型数据库的规则 规则即接口 也就是说 官方定义了一套操作所
  • java实现单点登陆(SSO)

    java实现单点登陆 SSO 网络域名必须完全一致 才代表同一站点 域名映射 访问后面的 会跳转到前面 单点登陆概念 多系统 单一位置登录 实现多系统同时登陆 常出现在互联网和企业级平台中 单点登陆一般是用于互相授信的系统 实现单一位置登录
  • Unity Shader简介

    Shader 中文名为着色器 对很多开发者来说它是一个神秘的存在 想学但是又不知道如何去学 或者学了一段时间发现Get不到它的点 始终感觉游离在外 无法开窍 本文来讲下如何从零基础入门Shader 目的在于让初学Shader的程序或者美术可
  • C++ MyHttpServer网络服务器实验

    C MyHttpServer网络服务器实验 一 实验要求 二 文件夹管理 三 实验结果 四 程序代码 C 课程老师把这一个实验分成了五个小实验 VS版本是2019的 涉及Http协议的请求处理 响应处理 多线程等 有一两个实验老师的示例代码
  • 原理图改动后更新PCB报错的解决方法

    今天我在用Altium Designer 20绘制PCB时遇到了一个情况 在更改了原理图以后再进行Update PCB Document的时候软件会提示错误 截图如下 遇到这种情况时大家往往束手无策而选择重新建立一个空白的PCB板再去生成一
  • Spring MVC传递List类型参数报错:No primary or default constructor found for interface java.util.List]使用两种注解解决

    在测试GenericConverter传递List数组的时候 出现No primary or default constructor found for interface java util List with r这个错误 解决 因为报错
  • 单图像超分辨率重建总结

    单图像超分辨率重建总结 定义 单图像超分辨率重建 Single Image Super resolution Reconstruction SISR 旨在从给定的低分辨率 LR 图像中 重建含有清晰细节特征的高分辨率 HR 图像 是计算机视
  • vue和elementui实现多表格选择和查看已选的功能

    目录 功能描述 数据 HTML js CSS 功能描述 经常碰到需要写多个表格选择 并且可以查看已选项目的功能 实现功能大致如此 左侧是可选择的表 点击表展示每个表里可选字段 然后点击查看已选 可以展示以及选择的表格数据 如下图 涉及敏感字
  • BeanUtils应用,tojavabean

    package com bochy tojavabean import java util HashMap import java util Map import org apache commons beanutils locale co
  • 高清壁纸wallhaven.cc下载图片

    建议不要用多线程 设置延迟 不然会被封IP import requests import os import re import time from concurrent futures import ThreadPoolExecutor
  • GCN代码详解(SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS(2017ICLR))

    不足之处请大家多多指点 文章目录 链接 代码详解 链接 论文题目 用图卷积网络进行自监督分类 GCN 2017ICLR 论文链接 1609 02907v3 pdf arxiv org 代码链接 tkipf pygcn Graph Convo
  • 总链接地址

    链接 达内博客 链接地址 程序媛泡泡 https blog csdn net weixin 43884234 cgblpx 皮皮虾 https blog csdn net u012932876 闪耀太阳 https blog csdn ne
  • python环境离线打包环境、离线环境迁移、离线环境复制、离线环境克隆

    我们经常使用conda来管理自己环境 时间久了 环境中的依赖错综复杂 有的通过pip或者conda下载 有的是离线安装 有的是通过魔法下载 这时候如果要将本机环境复制到另一台计算机中就会非常麻烦 甚至另一台计算机无法联网 这时候可以使用co