ITメモベース

Python・開発環境まわりの「つまずきポイント」を整理するITメモ


PythonでImportErrorとModuleNotFoundErrorの違いと見分け方


Pythonを実行していると、次のようなエラーを見かけることがあります。

ImportError: cannot import name 'xxx'
ModuleNotFoundError: No module named 'xxx'

どちらも「import に失敗している」ように見えますが、
この2つは原因も対処法も異なるエラーです。

この記事では、ImportError と ModuleNotFoundError の違いと、エラー文からの見分け方を初心者向けに分かりやすく解説します。

この記事でわかること

  • ImportError と ModuleNotFoundError の違い
  • エラー文の読み方
  • それぞれが出る典型的な原因
  • 最初に確認すべきポイント

ModuleNotFoundError とは?

エラー例

ModuleNotFoundError: No module named 'requests'

意味

指定したモジュール自体が見つからない場合に出るエラーです。

Pythonが、

  • インストール済みのライブラリ
  • 標準ライブラリ
  • 実行環境のパス

のどこを探しても、
該当するモジュールを見つけられない状態です。

ModuleNotFoundError が出る主な原因

  • モジュールがインストールされていない
  • 仮想環境(venv)が有効化されていない
  • 別のPython環境でpip installしている
  • モジュール名のスペルミス

ImportError とは?

エラー例

ImportError: cannot import name 'Session' from 'requests'

意味

モジュール自体は存在するが、その中の指定した要素が見つからない場合に出るエラーです。

つまり、

  • モジュールはある
  • でも import しようとしている「中身」が違う

という状態です。

ImportError が出る主な原因

  • 存在しないクラス・関数をimportしている
  • ライブラリのバージョンが違う
  • 古いサンプルコードを使っている
  • import文の書き方が間違っている

違いを一目で見分ける方法

ポイント① エラー名を見る

  • ModuleNotFoundError
    → モジュール自体がない
  • ImportError
    → モジュールはあるが中身が違う

ポイント② エラーメッセージの内容

ModuleNotFoundError

No module named 'xxx'

👉 インストール・環境を疑う

ImportError

cannot import name 'xxx'

👉 import対象やバージョンを疑う

それぞれの最初の対処ポイント

ModuleNotFoundError の場合

pip3 install モジュール名
  • 仮想環境が有効か確認
  • pip3 が正しいPythonを指しているか確認

ImportError の場合

  • モジュールの公式ドキュメントを確認
  • 現在のバージョンを確認
pip3 show モジュール名
  • import文の書き方を見直す

よくある勘違い

  • ImportError = インストールされていない
    → ❌ 必ずしもそうではない
  • ModuleNotFoundError = コードの書き間違い
    → ❌ 環境の問題であることが多い

まとめ

Pythonの import エラーは、
エラー名を見るだけで原因の方向性が分かります

  • ModuleNotFoundError
    → モジュールが存在しない(環境・インストール)
  • ImportError
    → モジュール内の指定が違う(使い方・バージョン)

まずは エラー文を正確に読むことが、
最短で解決するための第一歩です。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP