收到有关 Tk 的“弃用警告”

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

我正在尝试遵循this问题的答案,试图复制到剪贴板,但是答案中提供的所有解决方案似乎都让我失败。在 macOS 上,我已成功使用 pyperclip 和 subprocess.run 复制到剪贴板,如链接帖子中所述,但是在 centOS 上都不起作用。我也尝试过在 macOS 上使用 Tkinter,但是当我运行以下简单代码时:

  from tkinter import Tk
  r = Tk()

我收到以下弃用警告:

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.

我真的不想用已弃用的依赖项构建我的应用程序,但是看到 centOS 不支持 pyperclip 或 subprocess.run 我觉得我没有其他选择。

具体来说,我想知道是否有一个好的解决方案来解决我的问题,也就是说,我想复制到centOS上的剪贴板,理想情况下,我想要一个可以在“大多数”平台上工作的解决方案。请注意,我使用的是 python3。

python-3.x tkinter centos
5个回答
1
投票

您有 2 个选择:

  1. 忽略弃用警告: 请参阅这篇文章使用 tkinter 与 Catalina,如何避免弃用警告?对我帮助很大。

  2. 升级Python: 请参阅官方文档 IDLE 和 tkinter with Tcl/Tk on macOS


1
投票

以下是我在我的环境中解决此问题的方法:我使用的是 Mac Monterey 12

  1. brew install tcl-tk
  2. brew install [email protected]
  3. pyenv install 3.11.4
    (如果已有,请卸载它,然后重新安装。这将使python使用现有版本的tk)
  4. pyenv local 3.11.4
    ,现在运行你的Python代码。

0
投票

我无法回答原来的问题,因为它现在已被弃用,但因为它链接到这个问题,我将在这里发布我的解决方案(假设已安装 pyenv):

我在这里按照@Karthik R的步骤进行操作https://stackoverflow.com/a/73930554/6429967但这并没有解决我的问题。我所做的和工作是基于以下文章:https://blog.lanzani.nl/2020/install-tkinter-macos/,它扩展了@Karthik R的解决方案方法

解决方案(注意:将pyenv版本更改为你的版本)

$ brew uninstall tcl-tk
$ pyenv uninstall 3.10.8
$ brew install tcl-tk
$ 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"
$ export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$(brew --prefix tcl-tk)/include' --with-tcltk-libs='-L$(brew --prefix tcl-tk)/lib -ltcl8.6 -ltk8.6'"
$ 
$ pyenv install 3.10.8
$ pyenv global 3.10.8

# Test the installation
$ python -m tkinter

编辑:此解决方案已在安装了 macOS Ventura 13.1 的基于 Intel 的 iMac 上进行了试用。


0
投票

也可以在这里找到答案:弃用警告:Tk 的系统版本已弃用,Vs Code 中的 M1 Mac - 全局 Python


如果您安装了 Homebrew,您可以使用以下命令更新

tk

brew uninstall tcl-tk --devel
brew install tcl-tk

推荐的选项是

然后您可能需要

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

如果您使用的是

zsh
终端:

用途:

echo "# For tkinter 
export PATH=\"/usr/local/opt/tcl-tk/bin:\$PATH\"" >> ~/.zshrc

或者如果您使用的是

bash
终端:

echo "# For tkinter 
export PATH=\"/usr/local/opt/tcl-tk/bin:\$PATH\"" >> ~/.bashrc

自制

参考

Python官方

tk
升级文档


0
投票

我有同样的问题,但没有安装 Brew 的权限,因为我不是管理员。如何在没有brew的情况下修复ZSH终端中的错误?

(注:我使用的是 Apple M1 芯片并安装了 MacOS 14.4.1。)

© www.soinside.com 2019 - 2024. All rights reserved.