2017年6月28日水曜日

anaconda3でインストールしたmatplotlibのエラーの回避

Ubuntu16.04LTS環境で
anaconda3を用いてpython環境を構築しました。

matplotlibを使ってグラフを描こうとしたらエラーが出て止まります。
以前は出なかったので、あれこれ悩んで解決したので、備忘録として書いておきます。

2017年6月末時点でanaconda3でpython環境を構築するとPyQt5がインストールされるみたいですが、そのことがエラーの原因になってると思われます。

インタラクティブシェルでmatplotlib.pyplotをインポートしようとすると、以下のエラーが出ます。

ModuleNotFoundError: No module named 'PyQt4'
 
解決法ですが
matplotlibの設定ファイルmatplotlibrcを書き換えます。デフォルトではPyQt4用のなっていると推察されましたので、その部分を書き換えます。

設定ファイルがどこにあるのかわからないのですが、インタラクティブシェルで以下のように入力すると場所がわかります。

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

場所が判ったらmatplotlibrcを適当なテキストエディタで開いて

元は以下のようになっていると思うので、赤いところを

#### CONFIGURATION BEGINS HERE
# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg 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      : Qt4Agg
# If you are using the Qt4Agg backend, you can choose here
# to use the PyQt4 bindings or the newer PySide bindings to
# the underlying Qt4 toolkit.
backend.qt4 : PyQt4        # PyQt4 | PySide

以下の青いように書き換えます

#### CONFIGURATION BEGINS HERE
# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg 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
# If you are using the Qt4Agg backend, you can choose here
# to use the PyQt4 bindings or the newer PySide bindings to
# the underlying Qt4 toolkit.
#backend.qt4 : PyQt4        # PyQt4 | PySide

以上で、正常に動作するようになりました。

0 件のコメント:

コメントを投稿