Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅从控制台运行时Matplotlib pdf保存失败_Python_Ssh_Console_Matplotlib - Fatal编程技术网

Python 仅从控制台运行时Matplotlib pdf保存失败

Python 仅从控制台运行时Matplotlib pdf保存失败,python,ssh,console,matplotlib,Python,Ssh,Console,Matplotlib,我正在使用matplotlib.backends.backend\u PDF将一些matplotlib绘图渲染为PDF。当我从我的(Linux)计算机上运行它时,它工作正常,但是如果我从外部位置ssh到计算机并运行代码,它将失败,并显示以下错误消息 File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 343, in figure **kwargs) File "/usr/lib/pymodules/pyth

我正在使用matplotlib.backends.backend\u PDF将一些matplotlib绘图渲染为PDF。当我从我的(Linux)计算机上运行它时,它工作正常,但是如果我从外部位置ssh到计算机并运行代码,它将失败,并显示以下错误消息

  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 343, in figure
    **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
    window = Tk.Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1688, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
代码中失败的行是fig=matplotlib.pyplot.figure(figsize=(11.5,14.8))


我假设这与它试图找到渲染绘图的显示有关,但我的代码从未实际显示它们。它只保存为PDF格式。有没有办法解决这个问题以使代码正常运行?

您的代码可能不会显示绘图,但它仍然使用需要显示的交互式后端

您可以选择
ssh-Yuser@host
并获得X连接,或者根据ngurenyaga提供的链接中的建议,编辑代码以使用非交互式后端:

matplotlib.use("Agg")
试着听听你的建议