Python
scipy
numpy
matplotlib
Anaconda

anacondaにおけるnumpyやscipyのインポートエラーについて

More than 1 year has passed since last update.


環境とエラーについて


環境

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の方のファイルを参照するようになるので解決するようだ。