#import numpyのエラー
Windowsでanacondaを入れて、numpyをインポートすると、
失敗してしまった。
指定されたプロシージャが見つかりませんということだ。
またnumpyができたとしても、scipy.ioなどのインポートでも「指定されたプロシージャが見つかりません」というエラーが出てしまう。
同じようなエラーの人がいてこれかなあと思ったけど治らなかった。
http://qiita.com/eqs/items/79620732946939c7e3d1
こういうエラーではDependency Walker(http://www.dependencywalker.com/ )というツールを使うと原因がわかるということだ。
#Dependency Walker
ではどのファイルをDependency Walkerで開けばいいのか、
エラーがあったのは"C:\Anaconda3\lib\site-packages\numpy\core_init_.py"でmultiarrayをインポートしてエラーしている
よって"C:\Anaconda3\Lib\site-packages\numpy\core\multiarray.pyd"を開いて確認する。
こうしてみると、system32のmkl_intel_thread.dllがだめだということだ。
エラーしないマシンもあったので、比較すると、mkl_intel_thread.dllは赤くならない。
しかも!!そっちのマシンではmultiarray.pydに関連付けられているmkl_intel_thread.dllはsystem32にはなく"C:\Anaconda3\Library\bin"にある!
エラーするマシンでもmkl_intel_thread.dllはs"C:\Anaconda3\Library\bin"にある!
さらに、system32のmkl_intel_threadはバージョン10で、anaconda3のほうはバージョン11である。
これが原因だ!
#MKLとは
MKLはMath Kernel Libraryでintelが開発しているものだ。
最新のnumpyではどうやらこれが必要(しかもバージョン10ではだめ)である。
今回のエラーでは、System32の方を優先して参照していたようだ。
#結局
system32のmkl_intel_thread.dllを削除することで解決することができた。