【问题标题】:Matplotlib pdf saving fails when run from console only [duplicate]仅从控制台运行时,Matplotlib pdf 保存失败 [重复]
【发布时间】:2012-10-01 23:28:43
【问题描述】:

我正在使用 matplotlib.backends.backend_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。有什么办法可以解决此问题以使代码正常运行?

【问题讨论】:

标签: python ssh console matplotlib


【解决方案1】:

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

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

matplotlib.use("Agg")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多