47
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

$DISPLAYが未定義でmatplotlibがコケる問題を再発させない方法

ssh経由でリモートログインしていてmatplotlibを使った可視化のスクリプトを実行したりすると、たとえGUIを出すコードではなくファイルに出力するコードでも _tkinter.TclError: no display name and no $DISPLAY environment variable と怒られてしまう。

で、その直接的な解決方法はもちろん env DISPLAY=:0 python ... でよいのだけども、まあ人間はうっかり付け忘れてがっかりする生き物なので恒久的に再発防止をしたい。

このエラーの根本的な原因はmatplotlibのデフォルトバックエンドがTkAggになっているせい。というわけで /etc/matplotlibrc で以下のように変更すれば良い。

- backend      : TkAgg
+ backend      : Agg

めでたしめでたし

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
47
Help us understand the problem. What are the problem?