はじめに

Windowsで書いていたpyファイルをUbuntu上で動かそうとしたらエラーが出た。その対処法のメモ。

実行環境

Ubuntu 16.04 LTS
Python 3.6.3
matplotlib 2.2.2

事象

plt.showしていたWindowsで動かしていたpyファイルをUbuntu上(正確にはコンテナ上)で動かそうとしたら以下のエラーが発生。

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

対処法

plt.showではなくplt.savefigにしてファイル保存しますがそれだけではダメで、
以下の手順が必要みたいです。

設定ファイル「matplotlibrc」を修正します。
まずpythonを起動してmatplotlibの設定ファイルの場所を確認。

import matplotlib as mpl
print(mpl.get_config_dir())

/root/.config/matplotlib

ただし、おそらく上記の場所に「matplotlibrc」は存在しません。

/etc/matplotlibrc

があるため、vimで以下を修正する

backend : TkAgg

backend : Agg

その上で、「matplotlibrc」をコピー

cp /etc/matplotlibrc /root/.config/matplotlib/matplotlibrc 

これでOK。

参考

matplotlibで$DISPLAYが未定義の際に怒られた場合の対応
Matplotlibのグラフのスタイルを設定ファイル・スタイルシートで変更

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.