代码之家  ›  专栏  ›  技术社区  ›  Seg

_tkinter。TclError|TCL安装不正确。FreeSimpleGUI中出错

  •  0
  • Seg  · 技术社区  · 5 月前

    我已经学习这门Python课程几天了,现在我陷入了使用Pycharm下载和运行FreeSimpleGUI以及其他存档的练习中。

    我使用了以下代码:

    import functions 
    
    import FreeSimpleGUI
    

    我已经安装了Python的3.13.0版本和FreeSimpleGUI的5.1.1版本。还多次安装和卸载这些程序的相同版本和其他版本。

    我对Python非常陌生,所以我不知道该怎么做。

    我希望该模块能像视频中那样正常运行(“进程已完成,退出代码为0”),但它产生了下一个错误:

    Traceback (most recent call last):
      File "C:\Users\Aliss\PycharmProjects\PythonProject2\gui.py", line 2, in <module>
        import FreeSimpleGUI
      File "C:\Users\Aliss\PycharmProjects\PythonProject\.venv\Lib\site-packages\FreeSimpleGUI\__init__.py", line 41, in <module>
        tclversion_detailed = tkinter.Tcl().eval('info patchlevel')
                              ~~~~~~~~~~~^^
      File "C:\Users\Aliss\AppData\Local\Programs\Python\Python313\Lib\tkinter\__init__.py", line 2572, in Tcl
        return Tk(screenName, baseName, className, useTk)
      File "C:\Users\Aliss\AppData\Local\Programs\Python\Python313\Lib\tkinter\__init__.py", line 2459, in __init__
        self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
                  ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    _tkinter.TclError: Can't find a usable init.tcl in the following directories: 
        C:/Users/Aliss/AppData/Local/Programs/Python/Python313/lib/tcl8.6 C:/Users/Aliss/PycharmProjects/PythonProject/.venv/lib/tcl8.6 C:/Users/Aliss/PycharmProjects/PythonProject/lib/tcl8.6 C:/Users/Aliss/PycharmProjects/PythonProject/.venv/library C:/Users/Aliss/PycharmProjects/PythonProject/library C:/Users/Aliss/PycharmProjects/PythonProject/tcl8.6.14/library C:/Users/Aliss/PycharmProjects/tcl8.6.14/library
    
    
    
    This probably means that Tcl wasn't installed properly.
    
    1 回复  |  直到 5 月前
        1
  •  0
  •   Kenneth Nathan Tagalog    5 月前

    您遇到的错误是由于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正确安装和引用应该可以修复错误。