まず結論
ModuleNotFoundError は、import しようとしたモジュールが見つからないときに出ます。
import requests
requests がインストールされていなければ、エラーになります。
読む目安
次のようなエラーで止まった人向けです。
ModuleNotFoundError: No module named 'requests'
意味は「requests というモジュールが見つかりません」です。
イメージで考える
ModuleNotFoundError は、Pythonが道具箱を探したけれど見つからない合図です。
まだインストールしていない場合もあります。
別の仮想環境に入れてしまい、今いる作業部屋から見えていない場合もあります。
「道具箱がないのか、別の部屋に置いたのか」を分けて見ると直しやすいです。
インストールが必要な場合
外部ライブラリは、先にインストールが必要です。
pip install requests
または環境によっては次のように実行します。
python -m pip install requests
import名とインストール名が違うこともある
ライブラリによっては、インストール名と import する名前が違う場合があります。
最初は、使っている教材や公式ドキュメントの書き方をそのまま確認するのが安全です。
仮想環境が違う場合
インストールしたはずなのに見つからない場合、別のPython環境に入れている可能性があります。
たとえば、仮想環境を使っているなら、有効化してからインストールします。
.\.venv\Scripts\Activate.ps1
pip install requests
ファイル名にも注意
自分のファイル名をライブラリ名と同じにすると、混乱の原因になります。
requests.py
このような名前は避けた方が無難です。ModuleNotFoundError だけでなく、import後の別のエラーの原因になることもあります。
読み方のコツ
ModuleNotFoundError は、「importした道具箱が見つからない」と読みます。
未インストール、環境違い、名前違いの順に確認すると直しやすいです。
手を動かすミニ練習
まずは標準ライブラリの math をimportして、importの形を確認しましょう。
import math
print(math.sqrt(9))
存在しない名前をimportすると、ModuleNotFoundError の読み方を確認できます。
3行まとめ
- ModuleNotFoundErrorはimport対象が見つからないときに出る。
- ライブラリが未インストールの可能性がある。
- 仮想環境が違うと、入れたはずでも見つからないことがある。