【记录】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渲染器输出到绘图面板,它是交互式的后端,拥有在屏幕上展示的能力。

posted @ 2022-05-22 11:34  __一条秋刀鱼  阅读(604)  评论(0)    收藏  举报  来源