export MPLBACKEND=Agg命令使用

目录

    • [1️⃣ `export`](#1️⃣ export)
    • [2️⃣ `MPLBACKEND`](#2️⃣ MPLBACKEND)
    • [3️⃣ `Agg` 是什么](#3️⃣ Agg 是什么)
    • [4️⃣ 为什么要设置 `Agg`](#4️⃣ 为什么要设置 Agg)
    • [5️⃣ 典型使用场景](#5️⃣ 典型使用场景)
    • [6️⃣ Python等价写法](#6️⃣ Python等价写法)

export MPLBACKEND=Agg 是一个 Linux / bash 环境变量设置命令 ,用于指定 Python 的 Matplotlib 使用的绘图后端(backend)

我们拆开解释:


1️⃣ export

export 是 Linux shell 的命令,用于 设置环境变量,并让子进程继承

例如:

bash 复制代码
export A=10

表示:

  • 当前 shell 设置变量 A
  • 之后启动的程序(python、bash脚本等)都可以读取这个变量。

2️⃣ MPLBACKEND

MPLBACKENDMatplotlib 的环境变量 ,用于指定 绘图后端

Matplotlib 有很多 backend,例如:

Backend 作用
TkAgg GUI窗口绘图
Qt5Agg Qt GUI
MacOSX macOS GUI
Agg 无GUI,直接渲染图片

3️⃣ Agg 是什么

Agg 指的是:

Anti-Grain Geometry

它是一个 纯 CPU 的图像渲染引擎,特点:

  • 不需要 GUI
  • 不需要 X11
  • 可以直接生成图片

常见输出:

复制代码
png
jpg
svg
pdf

例如:

python 复制代码
import matplotlib.pyplot as plt

plt.plot([1,2,3])
plt.savefig("a.png")

4️⃣ 为什么要设置 Agg

服务器 / Docker / CI / SSH 远程环境 中,通常 没有图形界面

如果使用默认 backend:

复制代码
TkAgg
Qt5Agg

就会报错:

复制代码
cannot connect to X server

或者:

复制代码
RuntimeError: Invalid DISPLAY variable

所以设置:

bash 复制代码
export MPLBACKEND=Agg

意思是:

让 Matplotlib 在无图形环境下运行,只生成图片,不打开窗口。


5️⃣ 典型使用场景

例如在 Docker / 训练脚本

bash 复制代码
export MPLBACKEND=Agg
python train.py

或者:

bash 复制代码
MPLBACKEND=Agg python plot.py

常见于:

  • 机器学习训练日志画图
  • CI pipeline
  • 服务器绘图
  • ROS / robot 可视化日志

6️⃣ Python等价写法

如果不想用环境变量,也可以在 Python 中写:

python 复制代码
import matplotlib
matplotlib.use("Agg")

然后再:

python 复制代码
import matplotlib.pyplot as plt

⚠️ 注意顺序必须在 pyplot 之前。


一句话总结

复制代码
export MPLBACKEND=Agg

意思是:

让 Matplotlib 使用 Agg 无GUI后端 ,在服务器或Docker中 只生成图片,不弹出窗口

相关推荐
派大星~课堂2 小时前
【力扣-148. 排序链表】Python笔记
python·leetcode·链表
微涼5302 小时前
【Python】在使用联网工具时需要的问题
服务器·python·php
想唱rap2 小时前
线程的同步与互斥
linux·运维·服务器·数据库·mysql
小白菜又菜2 小时前
Leetcode 657. Robot Return to Origin
python·leetcode·职场和发展
2402_881319302 小时前
跨服务通信兜底机制-Java 回传失败无持久重试队列,报告可能静默丢失。
java·开发语言·python
格林威3 小时前
SSD 写入速度测试命令(Linux)(基于工业相机高速存储)
linux·运维·开发语言·人工智能·数码相机·计算机视觉·工业相机
勇闯逆流河3 小时前
【LInux】linux控制(进程替换,自主shell的实现详解)
linux·运维·服务器
IMPYLH3 小时前
Linux 的 ls 命令
linux·运维·服务器·bash
笨笨饿3 小时前
33_顺序表(待完善)
linux·服务器·c语言·嵌入式硬件·算法·学习方法