「Python×Excelで作るかんたん自動化ツール」という本の72ページのcreate_excel.pyに書かれているコードを、Python IDILで実行しようとしたところ、以下のエラーメッセージが出ましたが、ChatGptを駆使して原因を探ったところ、無事解決しました。その手順についてお話ししたいと思います。
使用PC:MacBook Air
入力したコード
new_book = openpyxl.Workbook()
sheet = new_book.active
sheet['A1'] = 'Pythonから作成されたExcel'
new_book.save('new_excel.xlsx')
出ているエラーメッセージ
ModuleNotFoundError: No module named 'openpyxl'
手順
まずは、ターミナルにこのコマンドを入力しました
pip install openpyxl
この時、このコマンドをPython IDILに入力すると、invalid syntax
というエラーになりました。
問題は、ターミナルに指定のコマンドを入力しても、ModuleNotFoundError: No module named 'openpyxl'
と表示されたことです。ChatGptの回答によると、「ターミナルでインストールした openpyxl は、Python IDLEが使用しているPythonとは異なるバージョンにインストールされた可能性がある」とのことでした。まずはターミナルとPython IDLEのバージョンが一致しているかを確認しました。
python --version
import sys
print(sys.version)
結果
Python 3.11.5
3.12.2 (v3.12.2:6abddd9f6a, Feb 6 2024, 17:02:06) [Clang 13.0.0 (clang-1300.0.29.30)]
どちらも不一致でした。つまり、IDLEとターミナルで使用しているPythonのバージョンが違っていた故に、インストールしたパッケージ「openpyxl」がIDLEで認識されず、前に進めなかったのです。
解決するにはPython IDLEで使用しているPython 3.12.2に対して openpyxl をインストールしなくてはいけませんでした。
#解決の手順
1.ターミナルでPython 3.12.2に対応する pip コマンドを使用して openpyxl をインストールする。
python3.12 -m pip install openpyxl
2.ターミナルでPythonスクリプトを実行する際に、以下のコマンドを入力することでPython 3.12.2を明示的に指定し、python3.12を使えるようになる。
python3.12 /path/to/your_script.py
これによってPython IDLEと同じバージョンのPythonで「openpyxl」がインストールされるため、Python IDLEがきちんと動きました。あとは、本に載っている入力したコードをIDLEに入力し、無事にアウトプットができました。
最後に
ご回答いただきありがとうございました! 今後もよろしくお願いいたします。