无法使用 pyenv 安装运行 IDLE:`Python 可能没有为 Tk 配置``ModuleNotFoundError:没有名为 _tkinter 的模块'[重复]

问题描述 投票:0回答:2

我最近花了几个小时让

tkinter
和 IDLE 在我的
pyenv
Python 安装(macOS)上工作。

你为什么在这里?

  1. 您在 macOS
    and
    上使用 pyenv
  2. 管理 Python 版本
  3. ( 你想要 IDLE——Python 的开发环境——在你的 macOS 上工作
  4. 或者你想要
    tkinter
    模块工作)

怎么了?

您收到以下错误之一:

  1. Python may not be configured for Tk
    import tkinter
  2. import _tkinter # If this fails your Python may not be configured for Tk
  3. RuntimeError: tk.h version (8.6) doesn't match libtk.a version (8.5)
  4. ModuleNotFoundError: No module named '_tkinter'
python macos tkinter python-idle pyenv
2个回答
15
投票

这里是分步指南使IDLE和

tkinter
工作:

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

测试

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

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

就是这样!

我的环境:

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

  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>
    命令安装)

2
投票

不确定为什么以上内容对我不起作用。头痛数小时后的工作是:

$ brew install python-tk
© www.soinside.com 2019 - 2024. All rights reserved.