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

Python从入门到荒废-无网络Linux系统安装matplotlib

前提条件

已通过以下命令下载所有依赖:

pip download matplotlib==3.5.3 -d ./matplotlib_deps --only-binary=:all: --platform=manylinux2014_x86_64 --python-version=38

注:

  • matplotlib的版本是3.5.3,此版本兼容python的3.8.2版本
  • -d 是下载目录
  • –only-binary=:all: 只下载二进制文件
  • -platform指定linux系统架构为x86_64[查看架构命令:lscpu或uname -m]
  • –python-version指定python版本

将所有下载的.whl文件复制到离线Linux系统的目录(例如:/home/user/matplotlib_deps)

安装步骤

安装系统依赖(必须)

# Ubuntu/Debian 系统
sudo apt-get install -y \libfreetype6 libopenjp2-7 libpng16-16 libjpeg62-turbo# CentOS/RHEL 系统
sudo yum install -y \freetype libjpeg-turbo libpng

离线安装所有依赖包

cd /home/user/matplotlib_deps
# 列出所有下载的包
ls -1 *.whl
# 安装所有依赖(按正确顺序)
pip install --no-index --find-links=. \cycler*.whl \kiwisolver*.whl \numpy*.whl \pillow*.whl \pyparsing*.whl \python_dateutil*.whl \six*.whl \fonttools*.whl \matplotlib*.whl

注意:

  • 如果存在多个版本的同一个包,安装顺序很重要。使用通配符*时确保按上述顺序安装。
  • –no-index 去掉安装包的索引,index默认是http的url
  • –find-links 和–no–index搭配, . 指定为本地路径,否则也会报网络超时

验证安装

python -c "import matplotlib; print(f'Matplotlib {matplotlib.__version__} 安装成功!')"

IDE验证

  • 检查IDE使用的python版本是否与matplotlib安装的python版本是否一致。不一致更改IDE中的Interpreter

常见问题解决

问题:缺少底层库
错误示例:libopenjp2.so.7: cannot open shared object file

解决方案:

sudo find / -name libopenjp2.so.7 2>/dev/null  # 检查是否存在
sudo ln -s /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 /usr/lib/  # 创建符号链接

问题:权限不足
添加 --user 参数

pip install --no-index --find-links=. --user matplotlib*.whl

备用安装脚本(推荐)

创建安装脚本 install_matplotlib.sh:

!/bin/bashDEPS_DIR="/home/user/matplotlib_deps"echo "= 安装系统依赖 ="
sudo apt-get install -y libfreetype6 libpng16-16 libjpeg62-turbo 2>/dev/nullecho "= 安装Python依赖包 ="
for pkg in cycler kiwisolver numpy pillow pyparsing python_dateutil six fonttools matplotlib; doecho "安装: $pkg"pip install --no-index --find-links=DEPS_DIR DEPS_DIR/${pkg}*.whl
doneecho "= 验证安装 ="
python -c "import matplotlib as mpl; print(f'成功安装 Matplotlib v{mpl.__version__}')"

赋予执行权限并运行:

chmod +x install_matplotlib.sh
./install_matplotlib.sh

重要提示

  • 架构兼容性:确保下载的manylinux2014_x86_64与目标机器CPU架构一致

  • Python版本:目标机器Python版本必须是3.8.x

  • 依赖顺序:必须按 numpy → pillow → matplotlib 的顺序安装

  • 文件完整性:传输时使用校验和验证:

    # 生成校验和
    cd matplotlib_deps
    sha256sum *.whl > checksums.sha256
    # 离线机器验证
    sha256sum -c checksums.sha256
    

如果所有步骤正确执行,即可在完全离线的Linux系统上正常使用matplotlib。

http://www.xdnf.cn/news/13602.html

相关文章:

  • 电路板的 “双面绣”:猎板双色油墨如何重塑电子制造新范式
  • 人工智能AI
  • Unity3D Mono与IL2CPP区别详解
  • 关于主流电商官方API接口采集有哪些优势?
  • jpeg与 Mjpeg数据格式有什么区别
  • 大模型笔记_模型微调
  • Maven 之 打包项目时没有使用本地仓库依赖问题
  • 企业如何高效构建BI团队,解锁数据价值新高地?
  • 摩擦非线性随动电机位置误差控制系统
  • C# OAuth2密码模式接口鉴权
  • 前端面试题之将自定义数据结构转化成DOM元素
  • 面壁智能MiniCPM4.0技术架构与应用场景
  • 雷卯针对易百纳G16DV5-IPC-38E型主控板防雷防静电方案
  • Sentinel介绍
  • java大文件分段下载
  • (ML-Agents) 是一个开源项目,它使游戏和模拟能够作为使用深度强化学习和模仿学习训练智能代理的环境
  • Java SE - 类和对象入门指南
  • MCP 协议系列序言篇:开启 AI 应用融合新时代的钥匙
  • 爬取汽车之家评论并利用NLP进行关键词提取
  • 2025.6.11总结
  • RuoYi 前后端分离项目 Linux 部署全指南
  • 第四章无线通信网
  • 安卓15开机启动Fallbackhome去除--成果展示
  • 看板中如何管理技术债务
  • 智慧厕所系统:革新公共卫生设施的新势力
  • 以 OCP 认证培训为翼,翱翔数据库广阔天空
  • 基础篇:5. HTTP/2 协议深度解析
  • 青藏高原地区多源融合降水数据(1998-2017)
  • C#使用MindFusion.Diagramming框架绘制流程图(3):加权图的最短路径算法
  • Web APIS Day03