matplotlib.pyplotのエラー対策をしてみた

Ubuntu 16.04とDocker版Caffe 1.0のmatplotlib.pyplotで、エラーが発生したため対策を行いました。

スポンサーリンク

状況

ipythonの起動後、matplotlib.pyplotをインポートして、plt.imshow()を実行すると、以下のエラーが発生しました。

import matplotlib.pyplot as plt
...
plt.imshow(im)
...
ImportError: No module named 'tkinter'

対策(Ubuntu 16.04の場合)

ホスト側のUbuntu 16.04の場合は、以下のコマンドでpython-tkをインストールします。

$ sudo apt-get install python-tk

ipythonを起動して、確認を行います。

import matplotlib.pyplot as plt
...
plt.imshow(im)
plt.show()

対策(Docker版Caffe 1.0の場合)

GUIアプリのための設定を行っていないDockerコンテナの場合、以下のコマンでpython-tkをインストールしても、

# apt-get install python-tk

別のエラーが発生します。

import matplotlib.pyplot as plt
...
plt.imshow(im)
...
TclError: no display name and no $DISPLAY environment variable

GUIアプリのための設定を行っていないDockerコンテナの場合、matplotlibのbackendをAggに切り替えた後、matplotlib.pyplotをインポートします。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
...
plt.imshow(im)
plt.savefig('im.png')

これで、pltが保存できるようになります。

まとめ

Ubuntu 16.04とDocker版Caffe 1.0のmatplotlib.pyplotを使用できるように対策を行いました。