PC Rescue Lab
Python

ModuleNotFoundError: No module namedの直し方|インストール済みでも出る原因

PythonのModuleNotFoundErrorを、未インストール・環境の違い・import名の違いから確認。実行中のPythonとpipを照合するコマンド付きです。

更新日

まず確認すること

エラーに出た名前をそのままpipへ渡す前に、何を実行しているかと、どのPythonに入れたかを確認します。インストール時のパッケージ名とimport名は異なることもあります。

エラー末尾の名前と発生箇所を読む

ModuleNotFoundError: No module named 'requests' なら、実行中のPythonがrequestsを見つけられていません。トレースバックで自分のimportが失敗したのか、別のライブラリの内部で失敗したのかも確認します。

以下はrequestsを使うプログラムの例です。他のエラーでは、必要なパッケージの公式手順を確認して読み替えてください。存在しない名前や似た名前のパッケージを推測で入れないようにします。

実行中のPythonとpipを照合する

プログラムを実行するのと同じターミナルで確認します。エディタやノートブックだけで失敗する場合は、そこで import sys; print(sys.executable) を実行し、下の結果と比べます。

PowerShell/コマンドプロンプト:現在の環境を確認

python -c "import sys; print(sys.executable)"
python -m pip --version
python -m pip show requests

ターミナルで見つかることと、エディタが同じPythonを使っていることは別です。実行ファイルのパスが異なるなら、エディタ側で目的の環境を選び直します。

表示結果に合わせて次の操作を選ぶ

再インストールを繰り返す前に、どこで見つからないかを確認します。

結果次にすること
pip showで見つからない目的のPythonへ必要なパッケージを導入
pip showでは見つかるがエディタだけ失敗エディタのPython/カーネルを確認
PILなど名前が異なる配布名とimport名を公式資料で確認
自作モジュールが見つからないファイル配置、綴り、実行方法を確認

目的のPythonへ導入してimportを確認する

requestsを使うことが分かっている場合は、同じPython経由でpipを実行します。導入がエラーで終わったときは、そのエラーを先に解決してください。

requestsを必要とする場合の例

python -m pip install requests
python -c "import requests; print(requests.__file__)"

配布名と自作ファイルの名前に注意する

例えばPillowはインストール名が Pillow、import名が PIL です。エラーの名前だけで配布元を判断せず、使っているアプリやライブラリの依存関係を確認します。

自分のスクリプトを requests.py などライブラリと同じ名前にすると、別のファイルが読み込まれる原因になります。自作ファイルの名前と配置を見直し、必要なパッケージの場所が読み込まれるか確認してください。

直ったかは元の実行方法で確認する

単体のimportが成功したあと、元のエディタや起動手順からプログラムを実行します。ここでだけ失敗するなら、起動方法による環境の違いが残っています。

相談する場合は、エラー全体、sys.executable、pipの表示、起動方法をまとめます。個人名やアクセストークンを含む部分は公開前に取り除いてください。

よくある質問

『Requirement already satisfied』なのに直りません。

その表示は、呼び出したpipの環境では条件を満たしているという意味です。プログラムを動かすPythonが同じ環境かを、実行ファイルのパスで照合します。

参考にした公式資料

操作項目はWindowsやアプリの更新で変わる場合があります。画面が異なるときは公式資料も確認してください。

あわせて確認したいガイド

解決ガイド一覧へ