gpt4 book ai didi

python - tcl-tk (tkinter) 不通过 Homebrew pyenv 在 MacOS Mojave 上安装

转载 作者:行者123 更新时间:2023-12-05 08:39:53 25 4
gpt4 key购买 nike

如果我在 Homebrew 的 MacOS Mojave 上执行此操作:

$ brew install tcl-tk
$ brew install pyenv
$ pyenv install 3.7.4
$ pyenv global 3.7.4
$ python -m tkinter -c 'tkinter._test()'

我得到:

Traceback (most recent call last):
File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 142, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

我已经搜索了好几天,并尝试了各种解决方案,例如 here但到目前为止还没有运气。我为什么会收到此错误以及如何修复它有什么想法吗?

提前致谢!

最佳答案

这是制作 IDLE 和 tkinter分步指南工作:

  1. 安装tcl-tk用 Homebrew 软件。在 shell 中运行 brew install tcl-tk
  2. 在 shell 中运行 echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.zshrc
  3. 退出重新加载 shell Terminal应用程序或运行 source ~/.zshrc
  4. 重新加载后检查tck-tk$PATH .运行 echo $PATH | grep --color=auto tcl-tk .结果你应该看到你的 $PATH 内容与 tcl-tk突出显示
  5. 现在我们从第 1 步的 Homebrew 输出中运行三个命令
    1. 在 shell 中运行 export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
    2. 在 shell 中运行 export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
    3. 在 shell 中运行 export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
  6. 如果你的 Python 版本已经安装 pyenv然后用 pyenv uninstall <your python version> 卸载它.例如。 pyenv uninstall 3.8.2
  7. 设置将由python-build 使用的环境变量.在 shell 中运行 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'"注意:以后使用tck-tk实际与 Homebrew 一起安装的版本。发帖时刻8.6是实际的
  8. 最后用 pyenv 安装 Python与 pyenv install <version> .例如。 pyenv install 3.8.2

测试

  1. 在 shell 中运行 pyenv global <verion that you've just installed>
  2. 现在检查 IDLE。在 shell 中运行 idle .您应该看到没有任何警告的 IDLE 窗口和“以红色打印的文本”。

IDLE window run from Terminal. No warnings

  1. 现在检查tkinter .在 shell 中运行 python -m tkinter -c "tkinter._test()" .您应该会看到如图所示的测试窗口:

tkinter test window

就是这样!

我的环境:

检查执行上述步骤是否出了问题:

  1. macOS 卡特琳娜
  2. zsh (包含在 macOS Catalina 中)= 上面的“shell”
  3. Homebrew(按照 Homebrew 官方网站的说明安装)
  4. pyenv (根据来自 GitHub 的 pyenv 官方自述文件更新了 Homebrew 和 PATH)
  5. python 3.8.x - 3.9.x (使用 pyenv install <version> 命令安装)

关于python - tcl-tk (tkinter) 不通过 Homebrew pyenv 在 MacOS Mojave 上安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58400564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com