インストールしたのに「ModuleNotFoundError」が出る原因と直し方
pip install したのに、実行するとこう出る。
ModuleNotFoundError: No module named 'requests'入れたはずなのに無い。これはたいてい、インストールした先のPythonと、コードを実行しているPythonが別物だからだ。Pythonが複数入っていると起きやすい。
原因を確認する
pip がどのPython用なのかを見る。
pip -Vpython -Vpip -V の表示するパスと、実行に使っている python のパスがずれていたら、それが原因だ。pip で入れたのに、別の python で動かしている状態。
直し方1:pythonとpipを揃える
python -m pip で入れると、その python 自身にインストールされるので確実にずれない。
python -m pip install requestspython your_script.pypip install ではなく python -m pip install を習慣にすると、この問題はほぼ起きなくなる。
直し方2:仮想環境(venv)を使う
プロジェクトごとに環境を分けると、どのPythonに入れたかで迷わなくなる。
python -m venv .venvsource .venv/bin/activate # Windowsは .venv\Scripts\activatepython -m pip install requestsactivate した状態の python と pip は必ず同じ環境を指すので、ずれが起きない。
まとめ
- 原因:インストール先のPythonと実行中のPythonが違う
pip -Vとpython -Vのパスを見比べるpython -m pip installで揃える- プロジェクトはvenvで分けると根本的に防げる