2

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にのみ保存されます。この問題を回避してコードを適切に実行する方法はありますか?

4

1 に答える 1

2

あなたのコードはプロットを表示しないかもしれませんが、それでも表示を必要とするインタラクティブなバックエンドを使用しています。

X 接続を取得するかssh -Y user@host、ngurenyaga が提供するリンクの提案に従って、コードを編集して非対話型バックエンドを使用することができます。

matplotlib.use("Agg")
于 2012-10-11T15:12:04.863 に答える