Tkinterは、Pythonでグラフィカルなユーザーインターフェイスを作成するための標準ライブラリ(ツールキット)です。’tkinter’は標準ライブラリなので、ライブラリーモジュールのインストールは不要と思ったのですが、このサイトでご紹介している『MacのHomeBrewでpyenvを使用して構築した’Python 3.11.1’の環境』では、なぜか「ModuleNotFoundError: No module named ‘_tkinter’」というエラーが発生してしまいました。以下は、pythonの対話モードで’tkinter’モジュールをインストールした際のエラーメッセージです。
% python -i >>> import tkinter Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/{username}/.pyenv/versions/3.11.1/lib/python3.11/tkinter/__init__.py", line 38, in <module> import _tkinter # If this fails your Python may not be configured for Tk ^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named '_tkinter' >>> quit() %
Tkinterのインストール(HomeBrew on Mac)
『MacのHomeBrewでpyenvを使用して構築した「Python 3.11.1」の環境』で発生した「ModuleNotFoundError: No module named ‘_tkinter’」エラーは、そもそも『HoneBerewで’python-tk’がインストールされていない』ことが原因でした。Homebrewで’python-tk’をインストールした後、pyenvの’Python 3.11.1’の環境を再構築した結果、上記のエラーは発生しなくなりました。以下、管理人が実施した内容です。
- Homebrewでpython-tkをインストールしました。
% brew install python-tk % brew install python-tk@3.11
- pythonの環境をsystemに戻しました。
% pyenv global system % pyenv versions * system (set by /Users/{username}/.pyenv/version) 3.11.0 3.11.1
- pyenvで構築した’Python 3.11.1’の環境をアンインストールしました。
% pyenv uninstall 3.11.1 pyenv: remove /Users/{username}/.pyenv/versions/3.11.1? [y|N] y pyenv: 3.11.1 uninstalled % pyenv versions * system (set by /Users/{username}/.pyenv/version) 3.11.0
- ‘Python 3.11.1’の環境を新たにインストールしました。
% pyenv install 3.11.1 Installed Python-3.11.1 to /Users/{username}/.pyenv/versions/3.11.1 % pyenv versions * system (set by /Users/{username}/.pyenv/version) 3.11.0 3.11.1
- 使用するpythonのバージョンを3.11.1に変更しました。
% pyenv global 3.11.1 % pyenv versions system 3.11.0 * 3.11.1 (set by /Users/{username}/.pyenv/version
- pythonの対話モードで’tkinter’モジュールをインストールして「ModuleNotFoundError: No module named ‘_tkinter’」エラーが出なくなったことを確認しました。
% python -i >>> import tkinter >>> quit() %
- 新しく作成した’Python 3.11.1’環境には外部ライブラリーが入っていないので、改めて”pip”コマンドで外部ライブラリーをインストールしました。
% pip install openpyxl % pip install numpy % pip install matplotlib % pip install pillow % pip install pandas
Tkinterのバージョン確認
- コマンドラインから「python -m tkinter」を実行すると簡素な「Tk インターフェース」を表示するウィンドウが開き、インストールされたバーションが判ります。インストールされているバージョンは、「8.6」でした。
% python -m tkinter
- Tkinterのバージョンは、以下のコマンドでも確認が出来ました。
% python -c "import tkinter;print(tkinter.TkVersion)" 8.6
A Hello World Program
- Python3.11の公式ドキュメント(Tkinterモジュール)に掲載されていたサンプルプログラム「A Hello World Program」もVSCodeで問題無く実行することが出来ました。
from tkinter import * from tkinter import ttk root = Tk() frm = ttk.Frame(root, padding=10) frm.grid() ttk.Label(frm, text="Hello World!").grid(column=0, row=0) ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0) root.mainloop()
- 実行結果↓
コメント