【Python] pip制作离线包

news2025/4/13 11:50:57

制作离线安装包是一种非常实用的方法,尤其是在网络环境受限或需要在多台机器上部署相同环境时。以下是详细的步骤,帮助您创建一个包含所有依赖项的离线安装包,并在后续环境中复用。


步骤 1:准备工具和环境

确保您有一台可以访问互联网的机器(称为“在线机器”),以及一台无法访问互联网的机器(称为“离线机器”)。我们将使用在线机器下载所有必要的文件,然后将这些文件传输到离线机器。


步骤 2:创建 requirements.txt 文件

在在线机器上,列出所有需要安装的 Python 包及其版本号。例如:

requests==2.28.1
numpy==1.23.5
pandas==1.5.2
flask==2.2.2

将上述内容保存为 requirements.txt 文件。


步骤 3:下载所有依赖项

使用 pip download 命令下载 requirements.txt 中列出的所有包及其依赖项。

  1. 创建一个目录用于存放下载的包:

    mkdir offline_packages
    
  2. 使用 pip download 下载所有依赖:

    pip download -r requirements.txt -d offline_packages
    

    这会将所有需要的 .whl.tar.gz 文件下载到 offline_packages 目录中。


步骤 4:打包离线安装文件

将下载的文件打包成一个压缩文件,以便传输到离线机器。

  1. 使用 tarzip 打包:

    tar -czvf offline_packages.tar.gz -C offline_packages .
    

    或者:

    zip -r offline_packages.zip offline_packages
    
  2. 将生成的压缩文件(如 offline_packages.tar.gz)复制到离线机器(可以通过 U 盘、SCP 或其他方式传输)。


步骤 5:在离线机器上安装

在离线机器上解压并安装所有包。

  1. 解压压缩文件:

    tar -xzvf offline_packages.tar.gz -C /path/to/extract/
    

    或者:

    unzip offline_packages.zip -d /path/to/extract/
    
  2. 使用 pip install 安装所有包:

    pip install --no-index --find-links=/path/to/extract/offline_packages -r requirements.txt
    
    • --no-index:告诉 pip 不要从 PyPI 下载包。
    • --find-links:指定本地包的路径。

注意事项

  1. Python 版本一致性

    • 确保在线机器和离线机器上的 Python 版本一致(包括主版本号和次版本号,如 3.8.x3.9.x 之间可能有兼容性问题)。
  2. 操作系统兼容性

    • 如果在线机器和离线机器的操作系统不同(例如一个是 Linux,另一个是 Windows),可能会导致某些二进制包(.whl 文件)不兼容。在这种情况下,建议下载源码包(.tar.gz)并在离线机器上编译。
  3. 虚拟环境

    • 如果您使用了虚拟环境(如 venvvirtualenv),请确保在离线机器上也创建相同的虚拟环境后再安装包。
  4. 依赖项冲突

    • 如果您的项目依赖复杂,可能存在依赖冲突。建议在在线机器上测试安装是否成功,再进行离线部署。

扩展:制作完整的 Python 环境离线包

如果您需要将整个 Python 环境(包括解释器和所有依赖项)打包为离线安装包,可以使用以下工具:

方法 1:使用 pipenv

pipenv 是一个高级包管理工具,可以自动生成锁文件(Pipfile.lock),确保环境的一致性。

  1. 在在线机器上安装 pipenv

    pip install pipenv
    
  2. 初始化项目并安装依赖:

    pipenv install requests numpy pandas flask
    
  3. 打包整个环境:

    pipenv lock --requirements > requirements.txt
    pip download -r requirements.txt -d offline_packages
    
  4. 按照上述步骤将文件传输到离线机器并安装。

方法 2:使用 conda

conda 是一个强大的包管理工具,适合科学计算和复杂依赖场景。

  1. 在在线机器上创建环境并导出配置:

    conda create -n myenv python=3.9
    conda activate myenv
    conda install requests numpy pandas flask
    conda list --explicit > environment.txt
    
  2. 在离线机器上恢复环境:

    conda create --name myenv --file environment.txt
    

总结

通过上述步骤,您可以轻松制作一个离线安装包,并在多台机器上复用。推荐的方法是:

  1. 使用 pip download 下载所有依赖项。
  2. 打包并传输到离线机器。
  3. 使用 pip install --no-index 安装。

如果您在操作过程中遇到任何问题,请提供具体的错误信息或描述您的需求,我将进一步协助您解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 VcXsrv 在 Windows 10 上运行 Ubuntu 图形界面

VcXsrv 是一款用于 Windows 的开源 X 服务器,它允许在 Windows 系统上显示 Linux 的图形应用程序。当在 Windows 10 上安装并正确配置 VcXsrv 后,通过设置 WSL2 中的DISPLAY环境变量,使其指向运行 VcXsrv 的 Windows 主机的 IP 地址&#xff…

LSTM-SVM长短期记忆神经网络结合支持向量机组合模型多特征分类预测/故障诊断,适合新手小白研究学习(Matlab完整源码和数据)

LSTM-SVM长短期记忆神经网络结合支持向量机组合模型多特征分类预测/故障诊断,适合新手小白研究学习(Matlab完整源码和数据) 目录 LSTM-SVM长短期记忆神经网络结合支持向量机组合模型多特征分类预测/故障诊断,适合新手小白研究学习…

Autoware源码总结

Autoware源码网站 项目简介 教程 Autoware的整体架构如下图,主要包括传感器sensing、高精地图map data、车辆接口vehicle interface、感知perception(动态障碍物检测detection、跟踪tracking、预测prediction;交通信号灯检测detection、分类c…

QT聊天项目DAY01

1.新建初始项目 2.修改UI格式 运行效果 3.创建登录界面 设计登录界面UI 设计布局 调整布局间距 往水平布局中拖入标签和文本输入框 更换控件名称并固定高度 添加窗口部件 往现有的资源文件中导入图片 添加水平布局 4.设置登陆界面为主窗口的核心组件 #pragma once#include &l…

论文精度:基于LVNet的高效混合架构:多帧红外小目标检测新突破

论文地址:https://arxiv.org/pdf/2503.02220 目录 一、论文背景与结构 1.1 研究背景 1.2 论文结构 二、核心创新点解读 2.1 三大创新突破 2.2 创新结构原理 2.2.1 多尺度CNN前端 2.2.2 视频Transformer设计 三、代码复现指南 3.1 环境配置 3.2 数据集准备 3.3 训…

ORM查询的补充

一,ORM查询的补充: 1,连接查询: 反向查询: 先介绍一下什么是正向查询,比如我们之前的数据表之间建立的一对多的关系,我们通过文章找到相应的作者是属于正向查询的(由多到一)&…

蔚来汽车智能座舱接入通义大模型,并使用通义灵码全面提效

为加速AI应用在企业市场落地,4月9日,阿里云在北京召开AI势能大会。阿里云智能集团资深副总裁、公共云事业部总裁刘伟光发表主题演讲,大模型的社会价值正在企业市场释放,阿里云将坚定投入,打造全栈领先的技术&#xff0…

VMWare Workstation Pro17.6最新版虚拟机详细安装教程(附安装包教程)

目录 前言 一、VMWare虚拟机下载 二、VMWare虚拟机安装 三、运行虚拟机 前言 VMware 是全球领先的虚拟化技术与云计算解决方案提供商,通过软件模拟计算机硬件环境,允许用户在一台物理设备上运行多个独立的虚拟操作系统或应用。其核心技术可提升硬件…

【数据结构】红黑树超详解 ---一篇通关红黑树原理(含源码解析+动态构建红黑树)

一.什么是红黑树 红黑树是一种自平衡的二叉查找树,是计算机科学中用到的一种数据结构。1972年出现,最初被称为平衡二叉B树。1978年更名为“红黑树”。是一种特殊的二叉查找树,红黑树的每一个节点上都有存储表示节点的颜色。每一个节点可以是…

uni-app初学

文章目录 1. pages.json 页面路由2. 图标3. 全局 CSS4. 首页4.1 整体框架4.2 完整代码4.3 轮播图 swiper4.3.1 image 4.4 公告4.4.1 uni-icons 4.5 分类 uni-row、uni-col4.6 商品列表 uni-row、uni-col 小程序开发网址: 注册小程序账号 微信开发者工具下载 uniapp …

PHP多维数组

在 PHP 中&#xff0c;多维数组是数组的数组&#xff0c;允许你存储和处理更复杂的数据结构。多维数组可以有任意数量的维度&#xff0c;但通常我们最常用的是二维数组&#xff08;数组中的数组&#xff09;。 首先来介绍一下一维数组&#xff0c; <?php//一维数组 $strAr…

数学建模:针对汽车行驶工况构建思路的延伸应用

前言&#xff1a; 汽车行驶工况构建的思简单理解为将采集的大量数据进行“去除干扰、数据处理&#xff0c;缩减至1800S的数据”&#xff0c;并可达到等效替换的目的&#xff0c;可以使在试验室快速复现&#xff1b;相应的解决思路、办法可应用在 “通过能量流采集设备大量采集…

go语言内存泄漏的常见形式

go语言内存泄漏 子字符串导致的内存泄漏 使用自动垃圾回收的语言进行编程时&#xff0c;通常我们无需担心内存泄漏的问题&#xff0c;因为运行时会定期回收未使用的内存。但是如果你以为这样就完事大吉了&#xff0c;哪里就大错特措了。 因为&#xff0c;虽然go中并未对字符串…

当DRAM邂逅SSD:新型“DRAM+”存储技术来了!

在当今快速发展的科技领域&#xff0c;数据存储的需求日益增长&#xff0c;对存储设备的性能和可靠性提出了更高的要求。传统DRAM以其高速度著称&#xff0c;但其易失性限制了应用范围&#xff1b;而固态硬盘SSD虽然提供非易失性存储&#xff0c;但在速度上远不及DRAM。 为了解…

JS实现文件点击或者拖拽上传

B站看到了渡一大师课的切片&#xff0c;自己实现了一下&#xff0c;做下记录 效果展示 分为上传前、上传中和上传后 实现 分为两步 界面交互网络请求 源码如下 upload.html <!DOCTYPE html> <html lang"zh-CN"><head><meta charset&q…

Centos7.9 升级内核,安装RTX5880驱动

系统镜像下载 https://vault.centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 系统安装步骤省略 开始安装显卡驱动 远程登录查看内核 [root192 ~]# uname -a Linux 192.168.119.166 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x8…

Xdocreport实现根据模板导出word

只使用freemaker生成简单的word文档很容易&#xff0c;但是当word文档需要插入动态图片&#xff0c;带循环数据&#xff0c;且含有富文本时解决起来相对比较复杂&#xff0c;但是使用Xdocreport可以轻易解决。 Xdocreport既可以实现文档填充也可以实现文档转换&#xff0c;此处…

当当平台商品详情接口设计与调用指南

当当平台商品详情接口设计与调用指南 接口名称 GET /api/product/detail 图书商品核心信息查询接口 请求参数说明 参数名称 类型 是否必填 说明 isbn string 是 国际标准书号(支持13位/10位) product_id string 否 平台内部商品编号&#xff08;与…

sql server分析表大小

使用自动存储过程查询 EXEC sp_spaceused YourTableName; rows&#xff1a;表中的行数。reserved&#xff1a;表占用的总空间&#xff08;包括数据和索引&#xff09;。data&#xff1a;表数据占用的空间。index_size&#xff1a;索引占用的空间。unused&#xff1a;未使用的空…

《AI大模型应知应会100篇》第13篇:大模型评测标准:如何判断一个模型的优劣

第13篇&#xff1a;大模型评测标准&#xff1a;如何判断一个模型的优劣 摘要 近年来&#xff0c;大语言模型&#xff08;LLMs&#xff09;在自然语言处理、代码生成、多模态任务等领域取得了显著进展。然而&#xff0c;随着模型数量和规模的增长&#xff0c;如何科学评估这些模…