0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

躓きが解決しました。(改)

Last updated at Posted at 2024-08-11

「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のバージョンを確認するコマンド
python --version
Python IDLEでバージョンを確認するコマンド
import sys
print(sys.version)

結果

ターミナル
Python 3.11.5
IDLE
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に入力し、無事にアウトプットができました。

最後に

ご回答いただきありがとうございました! 今後もよろしくお願いいたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?