Pythonのモジュール不在エラーの対処法

冒頭まとめ importで次のエラーが出た場合、実行中のPythonが指定したモジュールを見つけられていません。 ModuleNotFoundError: No module named 'requests' インストールしたつもりでも、別のPythonや仮想環境で実行していることがあります。まず、エラーが出る環境で次を確認してください。 python -c "import sys; print(sys.executable)" python -m pip --version python -m pip show requests requestsは例です。実際に必要な配布パッケージの名前へ置き換えます。見つからなければ、実行するPythonを指定したうえで、そのPython経由でインストールしてください。 一方、末尾に'http' is not a packageなどが付いている場合は、手元のファイル名が本来のパッケージ名と衝突している可能性があります。再インストールより先に、何を読み込んでいるかを確認します。 エラーメッセージの意味 モジュールは、importで読み込む単位です。パッケージは、内部に別のモジュールを持てる種類のモジュールです。 ModuleNotFoundErrorはImportErrorの一種で、Python 3.6で追加されました。Pythonの例外の公式文書は、モジュールが見つからない場合と、読み込み済みモジュールを記録するsys.modulesにNoneが入っている場合に発生すると説明しています。 文言 意味 No module named 'foo' fooを見つけられない No module named 'foo.bar' foo.barを見つけられない。親の探索にも注意が必要 No module named 'foo.bar'; 'foo' is not a package fooは読み込まれたが、子モジュールを持つパッケージとして扱えない import of foo halted; None in sys.modules sys.modules['foo']がNoneで、読み込みが拒まれている これらの分岐は、CPythonのimportlib実装で確認できます。None in sys.modulesという文言だけで、別スレッドの失敗が原因だとは判断できません。 最後に表示された名前も確認してください。import requestsを実行していても、内部で必要な別モジュールを読み込めずに停止する場合があります。エラーの直前に並ぶファイル名と行番号を読むと、どの読み込みで止まったかが分かります。 最初に実行するPythonとインストール先を確認する sys.executableは、実行中のPythonの場所を示します。python -m pip --versionでは、そのPythonで動くpipの場所を確認できます。 ...

2026年10月4日 · ErrorLog