弃用警告:

8

我尝试遵循这个问题的答案,尝试将内容复制到剪贴板中,但是答案中提供的所有解决方案似乎都没有成功。在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。谢谢。


在Python3中,如果你想要导入tkinter,你需要使用import tkinter而不是import Tkinter - jizhihaoSAMA
谢谢您指出这个问题,我已经再次修改了我的问题。我刚刚运行了它,不幸的是我仍然收到相同的弃用警告。 - Mathew
也许你需要更新你的tkinter。这里有一些东西或许可以帮助你。 - jizhihaoSAMA
在 Linux 上,pyperclip 使用 Bash 命令 xclipxsel。如果你已经安装了 xclipxsel,那么它应该可以工作,或者你可以使用 subprocess.run("xclip ....") 来完成同样的操作。但是,xclipxsel 可能需要 X11 XWindow(与 tkinter 相同,它也需要 XWindow / X11)。 - furas
顺便问一下:你真的必须使用剪贴板吗?也许你可以将其保存在文件中,然后再从文件中读取?这在所有系统上都适用。 - furas
显示剩余3条评论
4个回答

1

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 终端:

Zsh tab

使用:

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

Homebrew

Reference

Python官方的tk升级文档


0
这是我在我的环境中解决这个问题的方法:我使用的是Mac Monterey 12。
1. `brew install tcl-tk` 2. `brew install python-tk@3.11` 3. `pyenv install 3.11.4`(如果已经安装了,请先卸载再重新安装。这样可以让Python使用已有的tk版本) 4. `pyenv local 3.11.4`,现在可以运行你的Python代码了。

0

我无法回答原来的问题,因为它现在已过时,但由于它链接到了这个问题,我会在这里发布我的解决方案(假设已安装pyenv):

我按照@Karthik R在这里的步骤https://dev59.com/bMTra4cB1Zd3GeqP-Ifo#73930554,但这并没有解决我的问题。我所做的并起作用的是基于以下文章: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上尝试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接