Edited at

Anaconda v5.3 Python3.7 verの導入に手こずったのでメモ


追記 (2019/07/25)

新しいバージョンのAnacondaでは,正式にPowershellに対応したとのことです.

より詳しく知りたい方はこちらの記事で確認してください.詳しく解説されています.

・ 参考リンク

Anaconda がやっと PowerShell に公式対応した

普通にインストールして,スタートメニューのAnaconda3 (64-bit)>Anaconda Powershell Promptでconda環境がPowershell上で起動します.

そして,以下のコマンドを叩く

> conda init powershell

すると,通常のPowershell上でもconda環境が使えるようになります.(Powershell起動時,conda環境が起動するようにスクリプトが生成される)

ただし,conda環境を起動する前にpythonコマンドを叩いてしまうと,numpyをimportできないみたいです.

先にconda環境を起動してからpythonコマンドを叩きましょう.


前提

普通にAnacondaをインストールして下記のようにpathを通した

C:\Users\hoge\Anaconda3

C:\Users\hoge\Anaconda3\Scripts


発生した問題

Anaconda Prompt上ではnumpyをimportできるのに

PowerShell上ではimportできない問題

(PowerShellを使う理由は特にないけど,なんとなく使ってみたかった)

[環境]

OS : Windows10_1803

Anaconda v5.3 python3.7


Traceback

PS C:\Users\hoge> python

Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda custom (64-bit) on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "C:\Users\hoge\Anaconda3\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
from . import multiarray
ImportError: DLL load failed: 指定されたモジュールが見つかりません。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\hoge\Anaconda3\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Users\hoge\Anaconda3\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\hoge\Anaconda3\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Users\hoge\Anaconda3\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Users\hoge\Anaconda3\lib\site-packages\numpy\core\__init__.py", line 26, in <module>
raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.

Original error was: DLL load failed: 指定されたモジュールが見つかりません。

ImportError: DLL load failed: 指定されたモジュールが見つかりません。

調べてみるとmklっていうdllが見つからないらしい.

Anaconda Prompt上ではdllは見つかるので単純にPathが通ってないってことになる.

dllの場所を調べた.

C:\Users\hoge\Anaconda3\Library\bin

ここにmklのdllがあった


解決

さっきのPathを環境変数に追加

結果,importできた.


最後に

以前のバージョンのAnacondaでインストールしたPython3.6環境では,今回のような問題は発生しなかったから,何かしらの原因があるんだろうけどよくわからなかった.

結果として問題なくimportできてるから,深くは考えないことにする.