モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

numpyのバージョンが合わない問題

とあるツールを動かそうとしたらこんなエラーが出ました。

RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe

どうもnumpyのバージョンが想定されているものと合っていないらしかった。
こういう場合、pipでnumpyのバージョンを上げれば解決するらしいのだが

$ pip install numpy --upgrade

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.22.3 which is incompatible.

と言われてしまい解決せず。

ただ、下記エントリに同様の件が上がっていました。

pipの厳格な依存関係チェックにハマってしまった時の解決方法備忘録メモ - Qiita https://qiita.com/y-vectorfield/items/effed435c42d8bad42ac

numbaのバージョンを上げればよい模様

pip install numba --upgrade

これで解決できました。
ありがたい。

…と思ったらそんなことなかったのです。

numbaはすでにupgradeされており、pip installしたらnumpyのバージョンを1.21に下げてくれました。
というわけで結局元の問題は解決せず…

どうやらnumbaはまだnumpyは1.21じゃないと動かないため、ここは必須要件のようでした。
さてさて困ったね。

どうもmatplotlibがこのエラー吐いているため確認すると matplotlib-3.1.0 でした。

$ pip show matplotlib
Name: matplotlib
Version: 3.1.0

ほかの環境では matplotlib-3.1.1 だったので、もうちょいバージョンを上げてみることにする。

$ pip install matplotlib==3.1.2

これで解決できました!

うーん、しかしいったいどういうことなんだろう…
anacondaの3.1.0のイメージがコンパイル時のnumpyバージョンが高かったってことなんだろうか?