Open3

TkEasyGUIを使う時のメモ

たくろーどんたくろーどん

Tkinterのかわりになりそう。

https://github.com/kujirahand/tkeasygui-python

手順通り

pip install TkEasyGUI

してみたが、下記のようなエラーが出た。


error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.

    If you wish to install a Python library that isn't in Homebrew,
    use a virtual environment:

    python3 -m venv path/to/venv
    source path/to/venv/bin/activate
    python3 -m pip install xyz

    If you wish to install a Python application that isn't in Homebrew,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. You can install pipx with

    brew install pipx

    You may restore the old behavior of pip by passing
    the '--break-system-packages' flag to pip, or by adding
    'break-system-packages = true' to your pip.conf file. The latter
    will permanently disable this error.

    If you disable this error, we STRONGLY recommend that you additionally
    pass the '--user' flag to pip, or set 'user = true' in your pip.conf
    file. Failure to do this can result in a broken Homebrew installation.

    Read more about this behavior here: <https://peps.python.org/pep-0668/>

pipをつかってシステム全体にパッケージをインストールする際にエラーが出る模様。

pipxをつかって仮想環境にインストールしたところ、正常にインストールできた。

// インストール
brew install pipx
// PATHを追加
pipx ensurepath
pipx install TkEasyGUI
たくろーどんたくろーどん

考え直して、venvで仮想環境を作り、そこにTkEasyGUIをインストールすることにした。

// 仮想環境作成
python3 -m venv tkeasygui
// 仮想環境を有効化
source tkeasygui/bin/activate
// インストール
pip3 install TkEasyGUI
たくろーどんたくろーどん

Githubにのっているサンプルコードを動かしてみた。

import TkEasyGUI as eg
# Show Text dialog
eg.print("A joyful heart is good medicine.")

すると実行時、下記のようなエラーが発生。

import _tkinter # If this fails your Python may not be configured for Tk

調べてみると、下記が参考になった。
Pythonのバージョンにあったpython-tkのインストールが必要とのこと。

https://zenn.dev/k41531/articles/6133b1b045d1aa

今回使用していたpythonのバージョンは3.13.0なので

brew install python-tk@3.13

を実行。
再度、サンプルコードを実行すると動いた。