news 2026/5/12 23:58:46

【python】离线安装库到内网中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【python】离线安装库到内网中

一、在外网机器上:下载所有依赖包(关键步骤)

你需要一台可以联网的电脑(Windows/Linux 都行),下载openpyxl及其所有依赖的.whl文件。

1. 先确认内网环境信息

在内网 Ubuntu 上,激活你的Test环境,查看 Python 版本和系统架构:

bash

conda activate Test python --version # 输出示例:Python 3.10.12 uname -m # 输出示例:x86_64

你的Test环境是Python 3.10x86_64架构,下载时要匹配。

2. 在外网机器上,下载所有依赖

在外网机器上,用和内网相同版本的 Python(比如 Python 3.10)执行:

bash

# 新建一个目录存包 mkdir openpyxl_offline cd openpyxl_offline # 下载 openpyxl 及其所有依赖 pip download openpyxl -d ./ --python-version 3.10 --platform linux_x86_64 --only-binary=:all:

执行完成后,openpyxl_offline目录里会有所有.whl文件(包括openpyxlet_xmlfile等依赖)。


二、把包传到内网 Ubuntu

通过 U 盘、内网文件共享等方式,把整个openpyxl_offline目录传到你的内网 Ubuntu 机器上,比如传到~/openpyxl_offline


三、在内网 Ubuntu 上,离线安装到你的Test环境

  1. 激活Test环境:

    bash

    conda activate Test
  2. 进入包目录并安装:

    bash

    cd ~/openpyxl_offline pip install --no-index --find-links=./ openpyxl
    • --no-index:禁止 pip 去外网找包
    • --find-links=./:告诉 pip 从当前目录找依赖
  3. 验证安装是否成功:

    bash

    python -c "import openpyxl; print(openpyxl.__version__)"

    如果能正常输出版本号,说明安装成功,你的pandas.read_excel报错就解决了。


四、备选方案:用 Conda 包离线安装

如果你习惯用 conda,也可以在外网下载.tar.bz2格式的 conda 包:

  1. 在外网 conda 环境里下载:

    bash

    conda install -c conda-forge openpyxl --download-only --prefix ./conda_pkgs
  2. conda_pkgs目录传到内网,然后安装:

    bash

    conda activate Test conda install --offline --use-local ./conda_pkgs/linux-64/openpyxl-*.tar.bz2

五、避坑提醒

  • ❌ 不要手动复制单个库文件:openpyxl依赖et_xmlfile等其他库,手动复制很容易漏依赖。
  • ✅ 必须下载和内网 Python 版本、系统架构完全匹配的包,否则会出现invalid ELF header或版本不兼容错误。
  • ✅ 安装时一定要先激活Test环境,否则会装到 base 环境里,不会被你的代码识别。

如何一次性捞出所有依赖?

你原本的命令已经很接近了,但还需要补充一个官方要求的组合参数:

bash

pip download flask==3.1.3 \ -d ./packages \ --python-version 3.10 \ --platform linux_x86_64 \ --only-binary=:all: \ --no-deps

🔧 关键参数解释

  • --no-deps:这是最关键的一点!当你指定了--platform--python-version这类跨平台参数时,根据pip的安全机制,必须配合--no-deps一起使用。这能强制pip完全基于你提供的目标环境信息来解析依赖,而不是依赖本地环境,从而确保所有子依赖都能被正确拉取。

  • --only-binary=:all::这个参数确保为所有包下载预编译的wheel格式文件(.whl)。wheel文件可以避免在离线服务器上因缺少C编译器而导致安装失败,是实现可靠离线部署的最佳实践。如果某些依赖没有提供wheel文件,这个命令会报错,方便你发现和处理。

📝 几点使用建议

  • 目标Python版本--python-version应使用不带点号的数字,如310,代表 Python 3.10。

  • 目标系统平台--platform的值应与你目标服务器的环境严格一致。如果目标服务器是较新的 Linux,可以尝试使用更通用的manylinux2014_x86_64

  • 下载结果:运行上述命令后,./packages目录下将包含Flask 3.1.3 以及它所有依赖.whl文件。

  • 离线安装:将./packages文件夹复制到目标机器后,使用如下命令即可完成离线安装:

    bash

    pip install --no-index --find-links ./packages flask==3.1.3
    • --no-index:强制pip只从本地查找,不访问网络索引。

    • --find-links ./packages:指定本地包所在的目录。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 23:56:47

2026 iPhone17护眼膜终极选购指南:从AR抗反射、圆偏振光到叶黄素,一篇终结护眼钢化膜所有疑问

当你开始搜索“iPhone17护眼钢化膜推荐”“护眼钢化膜真的有用吗”或者“防蓝光膜有用吗”这些关键词时,说明你已经意识到:给手机贴膜不应该只为了保护屏幕,更要保护眼睛。但现实是,大多数人对护眼膜的认知仍停留在“防蓝光”三个…

作者头像 李华
网站建设 2026/5/12 23:56:32

简单序列帧动画播放器,播放GIF

using UnityEngine; using UnityEngine.UI; using UnityEngine.U2D;/// <summary> /// 简单序列帧动画播放器 /// 支持直接拖入 SpriteAtlas 图集&#xff0c;自动提取并播放所有帧 /// </summary> [RequireComponent(typeof(Image))] public class SimpleSpriteAn…

作者头像 李华
网站建设 2026/5/12 23:54:24

在Cursor中配置MCP Server

MCP Server 是 Model Context Protocol Server&#xff0c;可以理解为“给 AI 提供外部能力和上下文的服务”。 简单说&#xff0c;它像是 AI 和外部世界之间的“标准化适配器”&#xff1a; AI 本身只会对话和推理MCP Server 把某种能力包装成统一协议这样 AI 就能安全、规范…

作者头像 李华
网站建设 2026/5/12 23:53:35

2026亲测靠谱的商业模式技术公司

在市场竞争持续白热化的2026年&#xff0c;越来越多的企业主发现&#xff0c;单纯依靠流量红利或价格战已难以为继&#xff0c;业绩增长的瓶颈往往源于商业模式本身的陈旧。不少企业投入大量资源进行产品迭代或营销推广&#xff0c;但收效甚微&#xff0c;根源就在于缺少一套系…

作者头像 李华
网站建设 2026/5/12 23:52:56

Visual C++运行库合集AIO:一站式解决Windows程序依赖问题

Visual C运行库合集AIO&#xff1a;一站式解决Windows程序依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C运行库合集AIO&#xff08;All-in-On…

作者头像 李华