ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
こんなnumpyのエラーが界隈で多数発生しています。
理由は、最近リリースされた NumPy 2.0によりエラーが発生している様です。
特にローカルでは上手くいくけど、本番ではエラーになったりとバージョン違いによるエラーも起きている様です。
解決方法:
1.NumPy のバージョンを確認する:
使用している Python 環境で import numpy; print(numpy.version) を実行し、現在インストールされている NumPy のバージョンを確認してください。
2.パッケージの互換性を確認する:
NumPy と一緒に使用している他のライブラリ (pandas, scikit-learn など) のバージョンを確認し、それらのライブラリが現在使用している NumPy のバージョンと互換性があることを確認してください。ライブラリのドキュメントを参照するか、パッケージマネージャー (pip) が提供する互換性情報を利用できます。
3.NumPy のバージョンを揃える:
もし NumPy のバージョンが異なっていることが原因であれば、すべての環境で同じバージョンを使用するようにしてください。 pip install numpy== ( は互換性のあるバージョン番号) を実行して、すべての環境で NumPy のバージョンを揃えましょう。
4.特定のバージョンの NumPy を使用する (おすすめしない):
どうしても特定のバージョンの NumPy を使用する必要がある場合は、仮想環境を作成し、その環境内で必要なバージョンの NumPy と互換性のあるパッケージをインストールすることができます。ただし、この方法は管理が煩雑になるため、なるべく避けたほうが良いでしょう。
まとめ
こちらの環境では、requirements.txtでNumpyのバージョンを指定して一旦回避した様ですが、各々のポリシーで修正しましょう。