当前位置: 首页 > news >正文

【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:指定本地包所在的目录。

http://www.jsqmd.com/news/805330/

相关文章:

  • 开源AI代码生成工具unsaged:本地化部署与高效开发实践
  • vsftpd匿名用户本地用户虚拟用户总结【20260512】001篇
  • 淘宝要接入AI购物助手:以后买东西,可能不是搜索,而是“让AI帮你挑”
  • Midjourney Sumi-e风格合规性预警:2024Q3版权新规下,3类易侵权水墨元素识别清单与安全替代方案(含JIS X 9051标准对照)
  • 终极PS4存档管理指南:Apollo Save Tool完全解析
  • 个人开发者如何利用Taotoken模型广场快速选型并验证创意原型
  • 2026届必备的五大AI辅助写作助手解析与推荐
  • 百元级GEO工具真的能生成高质量内容吗?
  • 终极VLC美化指南:5款VeLoCity专业主题让你的播放器焕然一新
  • 忆阻器争议:从数学定义到产业应用,如何理解下一代存储技术
  • 35岁零基础转行网络安全?值得吗?
  • 怎么解决梨采摘后的果肉黑心问题
  • 基于Dlib与OpenCV的人脸关键点检测实战:从静态图片到实时视频
  • 基于STM32CubeMX与HAL库的MAX30102心率血氧监测系统实战指南
  • 穿透 MQ 专栏 (五):【终局之战】MySQL 和 MQ 的世纪联姻:扒开“分布式事务”的遮羞布
  • 工程师远程高效设计:从工具链到协作心法的实战指南
  • 35岁裸辞转行网络安全!零基础入门的真实励志案例,建议收藏
  • 要以战养兵,不要纸上谈兵
  • 电子仪器CE标志合规:从技术文件到尽职调查的完整指南
  • 别再用暴力搜索了!用C++解鸡兔同笼,这几种算法思路让你面试加分
  • 你的音乐被“囚禁“了?ncmdumpGUI终极解锁指南:让NCM文件重获自由
  • 终极指南:如何在Windows上轻松安装安卓APK应用
  • 别再手动调参了!用Matlab Regression Learner App,5分钟搞定你的第一个回归模型
  • 别瞎转了!零基础拿捏网络安全,看这篇“保姆级”避坑指南就够了
  • Taotoken用量看板如何帮助团队清晰管理大模型支出
  • 慕尼黑电子展:洞察汽车电子、工业物联网与功率半导体技术趋势
  • 高效轻量级:APK Installer带你告别臃肿模拟器,在Windows上无缝安装安卓应用
  • 在Cursor中配置MCP Server
  • 暗黑破坏神2存档编辑器完整指南:轻松打造完美角色
  • python调用tokenbox.cloud中的图片模型如gpt-image-1.5生成想要的图片的教程