「あれ?Labelがpackされてないぞ!!?」
真っ黒なウィンドウしか作成されず
困っていたところ以下の記事に助けられました。
また忘れそうなのでメモ。
Macのpyenv環境下でtkinterを使えるようにする方法をそのままにトラブルを解決したというメモです。
やり方は、基本元記事を参考にしてやってください。
macとpyenvのバージョンとターミナルのシェルが違うくらいです。
使用した環境
- macOS Monterey 12.3.1
- zshを使用
- pyenv 2.3.0
- tcl-tk: stable 8.6
そのほかの情報
pyenvでインストールしたpython3.9.6を使用していた
pycharmやVScodeのインタプリタとして使用。
まずはtcl-tkが含まれていないpythonをアンインストール
pyenv global system #systemにまず切り替える
pyenv uninstall 3.9.6 #アンインストールする
brew install tcl-tk #brewを介してtcl-tkをインストール
ターミナルの設定をする
~/.zshrc
#nodeのインストの時に設定した記述部分
source ~/.profile
export PATH=$HOME/.nodebrew/current/bin:$PATH
eval "$(pyenv init -)"
#今回の追加記述
export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
.zprofile
#nodeとpyenvのための記述
export PATH=$HOME/.nodebrew/current/bin:$PATH
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
#今回の追加記述
export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
pyenvからtcl-tkの8.6を使用するようにpython3.9.6をインストール
$ PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" pyenv install 3.9.6
3.9.6でなくてもいいと思うのですが、
自分は今回python3.9.6にしています。
無事にlabelなどがpackされるようになりました。
背景はデフォルト黒のままでした・・・。
configureで色は変えられるみたいので、
とりあえずこのままやってみようと思います。
import tkinter as tk
root = tk.Tk()
root.geometory("300x400")
root.configure(bg="pink")
pygameも試しているのですが、
そちらはこのようなトラブルはなく
ウィンドウにpack的なことをすることは可能でした。