MeWrite Docs

ModuleNotFoundError: No module named

Pythonでインポートしようとしたモジュールが見つからない場合に発生するエラー

概要

ModuleNotFoundError: No module named は、Pythonでimport文を実行した際に、指定したモジュールが見つからない場合に発生するエラーです。Python 3.6以降で導入され、ImportErrorのサブクラスです。

エラーメッセージ

ModuleNotFoundError: No module named 'requests'
ModuleNotFoundError: No module named 'mypackage'
ModuleNotFoundError: No module named 'mypackage.submodule'

原因

  1. パッケージ未インストール: pipでインストールしていない
  2. 仮想環境の問題: 別の仮想環境にインストールされている
  3. パスの問題: モジュールがPythonのパスに含まれていない
  4. 名前の間違い: モジュール名のスペルミス
  5. Python バージョンの問題: Python 2と3で異なるパッケージ

解決策

1. パッケージをインストール

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# pipでインストール
pip install requests

# Python 3を明示
pip3 install requests

# 特定バージョンをインストール
pip install requests==2.28.0

# requirements.txtから一括インストール
pip install -r requirements.txt

2. 仮想環境を確認

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 現在の仮想環境を確認
which python
which pip

# 仮想環境を有効化
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

# 仮想環境内でインストール
pip install requests

# インストール済みパッケージを確認
pip list
pip freeze

3. パスを確認・追加

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import sys

# 現在のパスを確認
print(sys.path)

# パスを追加
sys.path.append('/path/to/your/module')

# または環境変数で設定
# export PYTHONPATH="/path/to/your/module:$PYTHONPATH"

4. モジュール名を確認

1
2
3
4
5
6
7
8
9
# パッケージ名とインポート名が異なる場合がある
pip install Pillow      # パッケージ名
# import PIL            # インポート名

pip install python-dotenv  # パッケージ名
# import dotenv            # インポート名

pip install scikit-learn   # パッケージ名
# import sklearn           # インポート名

5. 自作モジュールの場合

ディレクトリ構成:

myproject/
├── main.py
├── mypackage/
│   ├── __init__.py    # 必須
│   └── module.py
1
2
3
# main.py
from mypackage import module
from mypackage.module import my_function

__init__.py が必要です(空でも可)。

6. 相対インポートの問題

1
2
3
4
5
6
7
8
# ❌ 間違い:スクリプトとして直接実行時
from .module import function  # 相対インポートはパッケージ内のみ

# ✅ 正しい:パッケージとして実行
python -m mypackage.main

# または絶対インポート
from mypackage.module import function

7. Python バージョンの確認

1
2
3
4
5
6
7
# Pythonバージョンを確認
python --version
python3 --version

# 正しいpipを使用
python -m pip install requests
python3 -m pip install requests

8. pipとPythonの対応を確認

1
2
3
4
5
6
# pipがどのPythonを使っているか確認
pip --version
# pip 23.0 from /usr/lib/python3.10/site-packages/pip (python 3.10)

# 特定のPythonにインストール
/usr/bin/python3.10 -m pip install requests

よくあるケース

Jupyter Notebookでの問題

1
2
3
# カーネルと異なる環境にインストールしている場合
import sys
!{sys.executable} -m pip install requests

Dockerでの問題

1
2
3
4
5
6
# Dockerfileでインストール
RUN pip install --no-cache-dir -r requirements.txt

# または
COPY requirements.txt .
RUN pip install -r requirements.txt

pyenvでの問題

1
2
3
4
5
# pyenvのPythonバージョンを確認
pyenv version

# グローバルにインストール
pyenv exec pip install requests

Python の他のエラー

最終更新: 2025-12-08