首页 > 解决方案 > Matplotlib 后端问题 _tkinter.TclError: no display name and no $DISPLAY environment variable

问题描述

我正在尝试使用 matplotlib 绘制一个简单的图形,同时使用 SSH 连接到 Linux 机器。我在 Python2.7 上运行我的代码

我首先运行了以下内容:

import matplotlib
print(matplotlib.get_backend())

我把“TkAgg”作为我的后端然后我跑了:

import os
import matplotlib as mpl
if os.environ.get('DISPLAY','') == '':
    print('no display found. Using non-interactive TkAgg backend')
    mpl.use('TkAgg')
import matplotlib.pyplot as plt 

确保专门使用 TkAgg。然而它返回:_tkinter.TclError: no display name and no $DISPLAY environment variable error。

有趣的是,当我使用“Agg”来查看会发生什么时,没有出现错误,也没有图表。

有什么好的建议吗?

标签: pythonubuntumatplotlibsshbackend

解决方案


Agg后端不显示任何内容,当您想要保存绘图而不显示它时使用它。

你想要的是从你所在的地方转发你的显示,所以ssh -Xssh -Y

请参阅https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely


推荐阅读