Python import できない(ModuleNotFoundError)
ModuleNotFoundError は「使っている Python と pip install 先が別」「PYTHONPATH の通っていないディレクトリ」「相対 import の記法ミス」のいずれかが原因。
#import#pip#venv#pythonpath
公開: 更新:
要約
ModuleNotFoundError: No module named 'X' の解決は、まず
python -m pip install X を実行する Python 実行ファイルが、
スクリプトを動かす Python と 同一かを確認 することから始める。
よくある原因
- venv 未活性化 で system Python に入っている
pip installが別の Python(pyenv/conda/system)に対して走った- パッケージ名と import 名が異なる(例:
opencv-python→cv2) - 相対 import を含むファイルを
python script.pyで直接実行している
解決策
1. 実行 Python と pip の整合確認
which python
which pip
python -c "import sys; print(sys.executable)"3つが同じ場所を指していなければ、まず venv を activate するか
python -m pip install <pkg> で確実に紐付ける。
2. venv を作って隔離
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install <pkg>3. 相対 import の解決
# パッケージ内のファイルを直接実行せず、モジュールとして起動
python -m mypackage.script4. import 名を調べる
pip install 名と import 名は別物のことがある。
PyPI のページ/README で 正式な import 名 を確認する。
実行例
実際に上記の手順を python:3.12(Debian GNU/Linux 13)環境で動かすと、import requests が ModuleNotFoundError で終了コード 1 となった後、python -m pip install で同一インタープリター(/usr/local/bin/python)へインストールしたことで再実行が正常終了し、requests 2.31.0 がロードされることを確認できる。
== versions ==
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
Python 3.12.13
git version 2.47.3
== run ==
--- Python の実行環境を確認 ---
3.12.13 (main, May 20 2026, 02:59:11) [GCC 14.2.0]
executable: /usr/local/bin/python
--- python app.py (ModuleNotFoundError: requests を想定)---
Traceback (most recent call last):
File "/tmp/tmp.7PDNx1ztvf/app.py", line 1, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
終了コード: 1
--- 解消: python -m pip install で「実行している Python」に確実に入れる ---
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
[notice] A new release of pip is available: 25.0.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
pip 終了コード: 0
--- 再実行 ---
requests version: 2.31.0
終了コード: 0
--- 参考: requests のインストール先を確認 ---
installed at: /usr/local/lib/python3.12/site-packages/requests— 2026-06-01 時点の出力