我正在尝试按照 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。谢谢
你有2个选择:
忽略弃用警告: 看到这篇文章Using tkinter with Catalina, how to avoid deprecation warning? helped me a lot.
升级 Python: 参见官方文档IDLE and tkinter with Tcl/Tk on macOS
我无法回答原来的问题,因为它现在已被弃用,但因为它链接到这个问题,我会在这里发布我的解决方案(假设安装了 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 上试用。
答案也在这里找到:DEPRECATION WARNING: The system version of Tk is deprecated, M1 Mac in Vs Code - global 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
升级文档tk