【记录】qt.qpa.screen: Could not connect to any X display 解决方案

最近在使用linux服务器画图的时候突然遇到了如下报错:

No protocol specified
qt.qpa.screen: QXcbConnection: Could not connect to display :0
Could not connect to any X display.

没有使用plt.show()或者imshow()之类的操作。在.bashrc中更改DISPLAY:=0也没有办法解决。
解决方案:

import matplotlib
matplotlib.use('Agg') # 一定要加在import matplotlib.pyplot as plt前面。
import matplotlib.pyplot as plt

matplotlib的use()命令其实是用来配置matplotlib的backend (后端)的命令。

>>> import matplotlib
>>> print(matplotlib.get_backend())
Qt5Agg
>>> 

实际上,Agg 渲染器是非交互式的后端,没有GUI界面,所以不显示图片,但是拥有写入到文件中的能力。Qt5Agg 是意思是Agg渲染器输出到绘图面板,它是交互式的后端,拥有在屏幕上展示的能力。

你可能感兴趣的:(Records,qt,python,开发语言)