ModuleNotFoundError in Python
状況
Anaconda上のJupyter notebookでの話。
あるモジュールをインストールして使おうとしたらModuleNotFoundErrorが発生。
インストールはできているし、conda install list の実行結果にも当該モジュールは含まれている。
原因1
異なる環境のPythonを参照していたので、意図した環境のモジュール群が参照できなかった。
import sys import pprint pprint.pprint(sys.path) # Output # D:\\Programs\\Anaconda\\envs\\他の環境\\python36.zip
原因2
環境セットアップ時に、環境を分けずに(nameを指定せずに)ipykernel installを実行してしまっていたため。
本来実行されるべきコマンド:
python -m ipykernel install --user --name env1
実際実行していたコマンド:
python -m ipykernel install --user
故に、最後にコマンドを実行した環境を参照する ipykernel で上書きされる状態だった。
対処
%USER%\AppData\Roaming\jupyter\python3\kernel.jsonがデフォルトの環境参照先として利用されているようだったので適当な場所へ移動(削除してもよさそうだったが念のため)
次に python -m ipykernel install --user --name env_X
を環境毎に実行。