ExcelファイルをPythonで扱いたいのに、「ModuleNotFoundError: No module named 'openpyxl'
」と出て困っていませんか?
この記事では、その原因と解決方法を初心者向けにわかりやすく解説します。
よくあるエラーと背景
まずは典型的なエラーから見てみましょう。
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
これを実行すると…
ModuleNotFoundError: No module named 'openpyxl'
というエラーが出ることがあります。

「え?ちゃんと pip install openpyxl
ってやったのに…!?」
多くのPython初心者が一度はつまずくポイントです。
原因:「pipでインストールしたopenpyxl」と「実行しているPython」が一致していない
Pythonの「環境」は複数同時に存在することが多く、
- システムのPython
- 仮想環境のPython
- Jupyter Notebook内のPython
- IDE(VSCodeやPyCharm)経由のPython
などがバラバラに存在し、それぞれ別のpipコマンドが使われていることがあります。
pipとpython3 -m pipの違いって?
そもそも「pip」って何?
「pip」はPython用のパッケージマネージャー。
Pythonにライブラリを追加するためのコマンドです。
pip install openpyxl
と打てば、インストールされる……はず。
実は、そうとも限らないのです。
pip
コマンドが指しているPython環境は、システムの設定やPATHによって異なることがあります。
そのため、意図したPython環境とは別の環境にインストールされてしまうことがあります。
確実な方法:python3 -m pip install openpyxl
python3 -m pip install openpyxl
この書き方を使うと、
- 「今のpython3に属するpip」が起動
sys.executable
と同じPython環境にインストールされるため安全
実行中のPython本体のパスを知りたい
Pythonでこのコードを実行した時に出力されるものが、実行中のPython本体のパスです。
import sys
print(sys.executable)
出力結果(例)
/opt/homebrew/opt/python@3.13/bin/python3.13
python
3 -m pip
は、このPythonが使うpipを呼び出してくれます。
※ここでは、version3.13が出力されたので、インストールする時にもpython3と指定してあげることが大切です。
pipで入れたのにimportできない? 調査ステップ
1. pip list を実行して、本当に入っているか確認
pip list | grep openpyxl
※Windowsの場合は `pip list` で一覧を確認し、手動で `openpyxl` があるか探してください
入っていなければ、そもそもインストールできていないか、別のPythonに入っています。
2. which pip と which python3 のパスを比較
Linux/macOS : which pip / which python3
Windows : where pip / where python
出力が違うパスになっていれば、別のPython環境を使っている証拠です。
3. 仮想環境(venv)を使っているか確認
仮想環境を作ったのに、有効化せずにpip installしてしまっていませんか?
以下のようにactivateしてからpipを使いましょう。
source venv/bin/activate
python -m pip install openpyxl
4. Jupyter Notebook内でimportできない
Jupyter Notebookではカーネル(Python実行環境)が複数存在するため、必要であれば Jupyter の「カーネルの変更」メニューから正しい環境を選ぶことも検討してください。
!python3 -m pip install openpyxl
または
import sys
!{sys.executable} -m pip install openpyxl
仮想環境の種類ごとの注意点
venv の場合
- プロジェクトディレクトリ内に
venv/
フォルダがある source venv/bin/activate
で有効化する
poetry の場合
poetry shell
で仮想環境に入るpoetry add openpyxl
でインストールすべき(pipは使わないのが推奨)
Anaconda の場合
conda activate 環境名
conda install openpyxl
またはpip install openpyxl
完全版チェックリスト
チェック項目 | 内容 |
---|---|
python3 -m pip install openpyxl を使ったか? | pipのズレを防ぐ |
import openpyxl でエラーが消えたか? | 成功の確認 |
仮想環境は有効になっているか? | venvやpoetryなど |
pip list でopenpyxlが表示されるか? | 正しく入ってる? |
JupyterやIDEのPython環境は正しいか? | カーネルを確認 |
複数のPythonがインストールされていないか? | which で確認 |
まとめ
Pythonでモジュールが見つからないときは、
「本当にそのPythonにインストールされてる?」
という目線で考えると、解決が早くなります!