【初心者向け】openpyxlが使えない?pip installしてもimportできない原因と解決法を徹底解説!

Python

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

python3 -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にインストールされてる?

という目線で考えると、解決が早くなります!

タイトルとURLをコピーしました