您遇到的错误是由于Pythons-tkinter(以及FreeSimpleGUI)所依赖的Tcl/Tk依赖项缺失或安装不正确造成的。要解决这个问题,请从卸载Python 3.13.0开始,因为它可能是一个不稳定的版本,或者是一个Tcl/Tk支持不完整的开发版本。相反,从Python官方网站下载并安装Python 3.11.x或3.12.x等稳定版本。在安装过程中,确保选中了安装Tcl/Tk和IDLE的选项,这对GUI库的工作至关重要。重新安装Python后,通过运行一个简单的脚本(如import tkinter as Tk)来测试tkinter是否正常工作;root=tk.tk();root.mainloop()。如果出现空白窗口,则Tcl/Tk安装正确。
接下来,使用虚拟环境在PyCharm中设置一个新项目来隔离依赖关系。在PyCharm中,导航到文件>设置>项目>Python解释器,并确保解释器指向您新安装的Python版本(例如C:\Python312\Python.exe)。在此环境中使用PyCharm终端和pip安装FreeSimpleGUI。
如果Tcl错误仍然存在,请手动检查Python安装Tcl文件夹(例如C:\Python312\Tcl)。确认它包含tcl8.6和tk8.6等子文件夹。如果缺少这些,请重新安装Python并在安装过程中显式启用Tcl/Tk。如果文件夹存在但错误仍然存在,请设置环境变量以引导Python访问Tcl/Tk文件:将Tcl_LIBRARY定义为C:\Python312\Tcl\tcl8.6,将Tk_LIBRARY指定为C:\Pyton312\Tcl\tk8.6(调整路径以匹配您的Python版本)。
最后,用一个最小的例子测试你的FreeSimpleGUI代码,比如:
import FreeSimpleGUI as sg
layout = [[sg.Text("Hello!")], [sg.Button("OK")]]
window = sg.Window("Demo", layout)
event, values = window.read()
window.close()
如果出现窗口,则问题已解决。这个问题通常源于Python安装不完整或虚拟环境继承了断开的路径。确保Tcl/Tk正确安装和引用应该可以修复错误。