You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

离线安装Jupyter Notebook依赖缺失 如何自动下载全量依赖包

pip离线下载漏拉全层级依赖解决方法

核心原因

漏下pyzmq这类间接依赖通常是两个原因导致:

  • 联网设备上的pip版本低于20.3,使用旧版依赖解析器,无法完整递归拉取所有层级的依赖包
  • 安装的目标包是alpha/beta等预发布版本(比如示例里的notebook==7.0.0a4),pip默认不会解析预发布版本的依赖链,且默认仅下载和当前执行环境匹配的安装包,遇到带C扩展、分平台发布的依赖时容易漏包

操作步骤

前置准备(可联网设备)

先把pip升级到最新版本,避免旧版解析器的bug:

pip install -U pip

尽量保证可联网设备和目标离线设备的操作系统版本、CPU架构、Python大版本完全一致。

  1. 编写requirements.txt,仅需要写入你要安装的目标顶层包即可,不需要手动添加任何间接依赖,示例:
    notebook==7.0.0a4
    
  2. 执行下载命令,替换原流程里的pip download命令:
    mkdir wheelhouse
    pip download -r requirements.txt -d wheelhouse --pre
    

    --pre参数作用是允许pip解析预发布版本的依赖链,解决alpha/beta版包依赖拉不全的问题。
    如果两台设备环境无法做到完全一致,需要在下载命令里追加参数指定目标离线设备的环境,避免下载的包和目标环境不匹配、漏下对应平台的依赖:

    # 示例参数对应64位Linux、Python3.10环境,按需替换成目标设备的实际值
    pip download -r requirements.txt -d wheelhouse --pre \
      --platform manylinux2014_x86_64 \
      --python-version 310 \
      --only-binary=:all:
    
  3. 将requirements.txt复制到wheelhouse目录下,执行打包命令:
    tar -zcf wheelhouse.tar.gz wheelhouse
    

离线设备安装

  1. 解压传输过来的压缩包:
    tar -zxf wheelhouse.tar.gz
    
  2. 执行安装命令:
    pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse --pre
    

兜底方案

如果上述操作仍有漏包,可以在可联网设备上新建一个完全干净的虚拟环境,先在虚拟环境内把需要的包装好,再执行pip freeze > requirements.txt导出全量依赖列表,用这个列表重新执行下载流程即可,这种方式导出的依赖列表和实际安装的全量依赖完全一致,不会出现漏项。


内容的提问来源于stack exchange,提问作者J.Todd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 16:45:50