2017年2月8日水曜日

anaconda2 matplotlib.pyplot error

anaconda2, anaconda3 package だけでpython本体を含めてlinuxへのinstallの可能である。よく出来ている。しかし、古いlinuxの場合graphics packageのエラーが出る可能性がある。

問題

import matplotlib.pyplot as plt
ですでにlibxcb関係のエラーが出る。importできないのであるから、以下のbackendすら調べられない。
import matplotlib.pyplot as plt
print matplotlib.pyplot.get_backend()

解決法

最新のanacondaではよくある問題らしくここに議論がある。
https://github.com/ContinuumIO/anaconda-issues/issues/1068

私の環境での解決法

1.一つは 
$ conda install pyqt=4.11
とすること。 

2.もうひとつはbackendの設定ファイルを変更すること。
import matplotlib
print(matplotlib.matplotlib_fname())
で表示されるファイルにtemplateがあり、
 # The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
# Template.
# You can also deploy your own backend outside of matplotlib by
# referring to the module name (which must be in the PYTHONPATH) as
# 'module://my_backend'.
backend      : Qt5Agg

となっていると思う。このQt5Aggをコメントアウトして、例えば、
 backend.qt4 : PyQt4        # PyQt4 | PySide
を生かす。

ref.
https://github.com/ContinuumIO/anaconda-issues/issues/1068