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'
原因
- パッケージ未インストール: pipでインストールしていない
- 仮想環境の問題: 別の仮想環境にインストールされている
- パスの問題: モジュールがPythonのパスに含まれていない
- 名前の間違い: モジュール名のスペルミス
- Python バージョンの問題: Python 2と3で異なるパッケージ
解決策
1. パッケージをインストール
| |
2. 仮想環境を確認
| |
3. パスを確認・追加
| |
4. モジュール名を確認
| |
5. 自作モジュールの場合
ディレクトリ構成:
myproject/
├── main.py
├── mypackage/
│ ├── __init__.py # 必須
│ └── module.py
| |
__init__.py が必要です(空でも可)。
6. 相対インポートの問題
| |
7. Python バージョンの確認
| |
8. pipとPythonの対応を確認
| |
よくあるケース
Jupyter Notebookでの問題
| |
Dockerでの問題
| |
pyenvでの問題
| |
Python の他のエラー
この記事は役に立ちましたか?