弃用警告:Tk 的系统版本已弃用,Vs Code 中的 M1 Mac - 全局 Python

dar*_*384 8 python tkinter visual-studio-code

(M1 MBA 2020,MacOS 12.3.1)因此,在 Vs Code 内部,当我Python 3.8.9从我的解释器中选择解释器时usr/local/bin Tkinter,它会按照我想要的方式运行。

这是正在工作的口译员

这是运行代码供参考。

运行代码

当我尝试使用全局Python 3.8.9解释器(usr/bin/python3)时出现问题。当代码运行时,应用程序最终看起来像这样。

tkinter 不工作

此外,当我运行代码时,终端会读取以下内容:

DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.
Run Code Online (Sandbox Code Playgroud)

我怎样才能修复这个错误?或者更新我的全局 Tkinter 版本而不偏离Python 3.8.9. 此外,如果需要更多信息,我很乐意提供,抱歉我对这些东西不熟悉

应用程序中使用的软件包:tkinter、Pillow、tkmacosx

最后一件事,当我删除所有提及的软件包 Tkmacosx 时,该应用程序显示如下:

没有 tkmacosx 的应用程序

Fre*_*lan 11

如果您安装了 Homebrew,则可以tk使用以下命令进行更新:

brew uninstall tcl-tk --devel
brew install tcl-tk
Run Code Online (Sandbox Code Playgroud)

推荐的选项是哪个

然后您可能需要添加export PATH="/usr/local/opt/tcl-tk/bin:$PATH"到您的.zshrc文件中:

如果您使用zsh终端:

Zsh 选项卡

使用:

echo "# For tkinter 
export PATH=\"/usr/local/opt/tcl-tk/bin:\$PATH\"" >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用bash终端:

echo "# For tkinter 
export PATH=\"/usr/local/opt/tcl-tk/bin:\$PATH\"" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

自制

参考

Python官方tk升级文档

  • tkinter 不再包含在此公式中,但可以单独使用:`brew install python-tk@3.10` (2认同)
  • 在这对我有用之后安装 python 。我用的是pyenv。 (2认同)

Kar*_*k R 7

下面弗雷迪的回答/sf/answers/5073073841/ 有效。

(此注释是对答案的回应)

我通过 pyenv 安装了 python 3.10.6,通过 homebrew 安装了 pyenv。(使用--devel卸载不起作用)

  • 使用 homebrew 安装 tcl-tk 并使用 pyenv 重新安装 python 3.10.6,使 python 安装使用 tcl-tk 的 homebrew 版本,并且在此 IDLE 之后工作正常。
% brew install tcl-tk
% pyenv install 3.10.6
% python
>>> import idlelib.idle
Run Code Online (Sandbox Code Playgroud)

  • *在*tcl-tk 之后安装 Python 就成功了! (4认同)