Windows環境のAnacondaで序数やらmklがどうたらでエラーが出た時

機械学習

Windows環境にきれいなAnaconda Navigatorを入れてKerasやらTensorFlow-gpuやらをimportしたスクリプトを動かそうと思ったら、このようなエラーに遭遇した

序数 242 がダイナミック ライブラリ

~~~~~(Anacondaのパス)\Library\bin\mkl_intel_thread.dll から見つかりませんでした

序数242って何よ?って思ってググってたら、GitHubのanaconda-issuesというリポジトリに同じ質問があった。

Cannot load Spyder in Anaconda3. Error message: “The ordinal 242 could not be located in the dynamic link library C:{User Path}\Anaconda3\Library\bin\mkl_intel_thread.dll”

で、確認したところ、mklというライブラリのバージョンが悪さをしているとの事。

私はAnaconda Navigatorを使っていたので、mklのバージョン指定もGUI経由で行った。

 

便利ですね。

2018.0.2を指定して構築したところ、別のエラーが出るようになった。またお前か

今度はserpentAIという、ゲームのBOTフレームワークのissueに問題があった。

Win 10 cannot load intel mkl during plugin install

ここの回答によると、”C\Windows\system32以下にあるmkl*.dllファイルを全部消せ”とのことで、試してみたところうまく行った。

 

どうやらpythonの何らかのライブラリが「OSの環境にあるmkl(math kernel library)を優先して選択して、無ければpython上でインストールされたmklを使用する」挙動になっている気がする。

これらを消してもOSの動作に支障はなかったが、心配ならMicrosoftのページから最新版のMath Kernel Libraryをインストールするべきかもしれない。