とあるツールを動かそうとしたらこんなエラーが出ました。
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バージョンが高かったってことなんだろうか?