matplotlib 使おうとしたら No module named ‘_bz2’ エラーで怒られた

matplotlib 使おうとしたら No module named ‘_bz2’ エラーで怒られた.
環境構築でハマることが多いな…

概要は次の通り.

動作環境

  • CentOS 7
  • Python 3.6.5
  • matplotlib 2.2.2

背景

pipでmatplotlibのインストールは完了.
実際コードを動かそうとしたらコンソールに次のようなエラーが出た.

_bz2 ってモジュールがないよ, と怒られてる.

ちなみに app.py ファイル冒頭では次のようにいくつかのモジュールを呼び出している.

今回のエラーは matplotlib を呼び出したときに発生したもの.

解決手順

ググったらbug reportを発見.

This is a problem as _bz2 is not always installed, and not listed as a required dependency of matplotlib.
I am able to fix the issue easily by moving the import of bz2 back down
inside of the to_filehandle() function, or alternatively placing it inside a try/except block.

引用: https://github.com/matplotlib/matplotlib/issues/10866

どうやら bz2 に依存してるっぽい.
この報告者の言う方法ではなく, それに答えてくれてる方の修正commitをgithubで確認.
それ通りに修正.

念の為対象ファイルのオリジナルをコピーしておく.

ok.
じゃあ変更するか.

↑このファイル内で to_filehandle() が呼ばれている.
その中に, ファイル冒頭でimportされている bz2 を移動.

移動先は elif fname.endswith('.bz2'): 直下.

ここまでできたら動作確認.

ちゃんと読めてる.
これでmatplotlibが使えるね.

今回は以上.

スポンサーリンク
336 x 280 – レクタングル(大)
336 x 280 – レクタングル(大)
  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

スポンサーリンク
336 x 280 – レクタングル(大)
トップへ戻る