俺言語。

自分にしか理解できない言語で書かれた備忘録

【Python】Pyinstallerでnumpyを使ったコードをexe化する際のMKL関連エラー

numpyを使用したコードのexe化トラブル覚え書き

1."Cannot load mkl_intel_thread.dll"

使用しているnumpyのバージョンや仕様によって出てくるエラーが違うようだけど

要はMKLライブラリが見つからないとのこと。

2. 非mklのnumpyでexe化

できればexe化後のファイル容量を小さくしたかったのでmklを使用しない方向でトライ

virtualenvで普通のnumpy(pipを使用)をインストール。

しかし同じエラー、"Cannot load mkl_intel_thread.dll"が発生

次にGohlkeさんのサイトの+vanila仕様をインストールしトライ。…でも変わらず。

[Update] Virtualenvで新しく作った環境の方にPyinstallerが入っていなかったことが上手く行かなかった原因。

Pyinstallerが入っていないことで既存の環境のライブラリを読み込みに行ってしまってた模様。

3. エラーが出ない最小のdll構成を調査

今回のコードでは下記があれば動作することが判明

  • mkl_mc.dll
  • mkl_rt.dll
  • mkl_avx2.dll
  • mkl_core.dll

これでも合計で200Mbyte...。mklとついたdll全部入れると500Mbyteもあるからかなり少なったがけど。。。