为了方便使用,可以利用python的os模块,把脚本放在前面执行。在__main__脚本前面加上export DISPLAY=:0.0
## mian.py import os import matplotlib.plt as plt ## linux 下,给$DISPLAY 分配一个变量,以防窗口无法弹出 if __name__ == "__main__": os.system('export DISPLAY=:0.0')	x = [0,1]	plt.plot(x)	print('test matplot')
shell 中检查
echo $DISPLAY
如果显示为空,说明当前窗口没有获得$DISPLAY环境变量 导致无法画图。
解决方案:在shell中运行以下脚本给变量赋值即可。
export DISPLAY=:0.0
一般情况下不会报错,所以难以排查问题所在。
实际上,之前使用vscode开发python时,一直遇到matplotlib模块不画图现象。编译器并不报错,debug完全通过,就是不显示图像。然而,在shell中直接运行py脚本却可以画图。