環境とエラーについて
環境
windows 8.1 64bit
Anacoanda 4.2.0 Python3.5 version 64bit
エラーについて
インストール時のチェックマークははずさず、普通にインストール完了後、NumpyやScipyをインポートすると
anacondaでnumpyやscipyのインポートに失敗してしまうバグについて
と、同様に失敗してしまった。
上記記事を参考にsystem32のmkl_intel_thread.dllを削除してみたがエラーは直らず。
ダメもとで再起動や再インストールを試したが相変わらずインポートは失敗する。
原因
参考記事と同様にDependency Walkerを用いて
"Anaconda3\Lib\site-packages\numpy\core\multiarray.pyd"を開いて確認すると
"windows\system32\mkl_intel_thread.dll"だけではなく
"windows\system32\mkl_core.dll"もどうやらだめらしい。
解決策
参考記事によればmkl_intel_thread.dllは"Anaconda3\Library\bin"にあり、
探してみるとmkl_core.dllも同じ場所に存在した。
そこで
"windows\system32\mkl_intel_thread.dll"
"windows\system32\mkl_core.dll"
以上2つのファイルを
"Anaconda3\Library\bin\mkl_intel_thread.dll"
"Anaconda3\Library\bin\mkl_core.dll"
で上書きする。
結果
当環境ではNumpy, Scipy 共にインポートに成功した。
所感
Anacondaは初心者にとって環境構築には便利だけど、なにかエラーが発生したとき、参考になるような(自分のレベルで理解できる)情報が少なく感じる。
追記
今日(2017/01/28)matplotlibをインポートしてみたら
"windows\system32\mkl_avx.dll"か"windows\system32\mkl_def.dll"でエラーが発生したらしく失敗した。
"Anaconda3\Library\bin\mkl_avx.dll"と"Anaconda3\Library\bin\mkl_def.dll"
の2つのファイルでsystem32の上記の2つのファイルを上書きするか、system32の方の2つを削除すれば解決した。
同様のエラーでは、問題のあるファイルを"Anaconda\Library\bin"フォルダ中の同名のファイルで上書きするか、system32の同名のファイルを削除すれば、anacondaの方のファイルを参照するようになるので解決するようだ。