どせいたんさき。

ナスダヨー

matplotlib が UnicodeDecodeError を吐いて死ぬ問題について

問題

とあるソフトウェアで使用するため Ubuntu 12.04 にて python2.7.3, matplotlib 1.3リポジトリからインストール.さっそく使用したところ以下のエラーを吐いて死んだ.

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc6 in position 0: ordinal not in range(128)

ここの情報によればパッケージの一部をインポートするときに死ぬらしい.

>> import matplotlib.pyplot # ここで死ぬ!!

このままではソフトウェアが動かないのでなんとかせねばならない.

解決方法

ここで対処方法が紹介されていた./usr/lib/pymodules/python2.7/matplotlib/font_manager.py を編集すればいいらしい.このファイルの 398 行目を以下のようにしてちょこっといじると動くようになった.

- sfnt4 = sfnt4.decode('ascii').lower()
+ sfnt4 = sfnt4.decode('ascii','ignore').lower()

とりあえず死ななくなったのでよしとする.