r0w0

PythonやDeepLearning関連で学んだこと、調べたことの備忘録

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 を環境毎に実行。