【已解决】ModuleNotFoundError: No module named ‘_tkinter‘

如果你在用macOS,且用homebrew安装了
Python 3.12.10 (路径是 /opt/homebrew/Cellar/python@3.12/...),
没有带 tkinter,因此你会遇到:

ModuleNotFoundError: No module named '_tkinter'

你该怎么做?

1. 用 pyenv 安装 Python,并用 pyenv 的 Python 运行项目!

你的环境变量和虚拟环境都没问题,但Python 必须是 pyenv 安装的,才能自动链接 Homebrew 的 tcl-tk。


详细操作步骤

A. 安装 pyenv 并用 pyenv 安装 Python 3.12.10

1. 安装 pyenv(如未装)
brew install pyenv
2. 配置环境变量(用于 tcl-tk,临时在终端执行,长期可加到 ~/.zshrc
export PATH="/opt/homebrew/opt/tcl-tk/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/tcl-tk/lib"
export CPPFLAGS="-I/opt/homebrew/opt/tcl-tk/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/tcl-tk/lib/pkgconfig"
export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/opt/homebrew/opt/tcl-tk/include' --with-tcltk-libs='-L/opt/homebrew/opt/tcl-tk/lib -ltcl9.0 -ltk9.0'"
3. 用 pyenv 安装 Python 3.12.10
pyenv install 3.12.10
pyenv global 3.12.10

B. 用 pyenv 的 Python 新建 venv 并安装依赖

which python  # 确认路径应该是 ~/.pyenv/shims/python
python --version  # 应该是 3.12.10

uv pip installpip install -e ".[dev]" 安装项目依赖。


C. 测试 tkinter 是否可用

python -c "import tkinter; print(tkinter.TkVersion)"

输出版本号说明已 OK。


D. 运行你的 Genesis 项目

python examples/smoke.py

此时应该不会再出现 _tkinter 的 ModuleNotFoundError。


重要提醒

只要你看到 /opt/homebrew/Cellar/python@3.12 路径,就是 Homebrew 的 Python,没 tkinter!

你要看到 ~/.pyenv/versions/3.12.10/bin/python 这种路径,才是 pyenv 的 Python。


快速排查

每次激活 venv 后,输入:

which python
  • 结果应该是 ~/.pyenv/.../venv/bin/python
  • 如果是 /opt/homebrew/...,说明你还在用 Homebrew Python

如还有卡住,请贴:

  • 你激活 venv 后 which python 的输出
  • python -c "import tkinter; print(tkinter.TkVersion)" 的输出

我可以帮你进一步定位!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

步子哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值