LoginSignup
9
3

More than 1 year has passed since last update.

matplotlibでpng保存するときに `_tkinter.TclError: no display name` とか怒られる場合の対処方法

Last updated at Posted at 2018-12-15

Ubuntu 18 のGUIなし環境での話です。
いまさら感はあるし、それほど流行らない使い方だけど、何度か調べてだんだん面倒になってきたので、自分が腑に落ちる形でまとめる。

GUIを使っていないときに、よく怒られる。

_tkinter.TclError: no display name and no $DISPLAY environment variable

対処方法1: システム側の設定を変える

システム管理者で、かつバックエンドがシステム共通でよい場合は、
/etc/matplotlibrc の backend を Agg 変える。

インストールの仕方によっては、設定箇所が異なるかもしれない。

対処方法2: ユーザ側の設定でどうにかする

システム管理者でないか、バックエンドが個人の嗜好による場合は、次のように環境変数を設定した状態で Pythonプログラムを動かせばよい。

MPLBACKEND=Agg; export MPLBACKEND

対処方法3: プログラム側の設定でどうにかする

システム側のバックエンドを変えることができなかったり、システム依存、つまり、動かすシステムにより挙動が変わってしまうプログラムにしたくない場合は、こんなコードを差し込む。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot

参考

9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3