问了好几个GPT 回答的都不是解决问题的,胡编乱造的
目前经过尝试好几个解决方案,终于破案了
win10系统 使用安装python时自动将tcl和tk 识别到了新创建的虚拟环境继承中
win11系统 则需要手动去做一些操作,才可以解决问题
我这报错的问题是这样的
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
Traceback (most recent call last):
File "D:\workspacePython\test.py", line 6, in <module>
tkinter._test() # 若弹出 Tk 窗口,则说明安装正常
~~~~~~~~~~~~~^^
File "C:\Users\hdlbg\AppData\Local\Programs\Python\Python313\Lib\tkinter\__init__.py", line 4954, in _test
root = Tk()
File "C:\Users\hdlbg\AppData\Local\Programs\Python\Python313\Lib\tkinter\__init__.py", line 2456, 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:
D:/workspacePython/venv/lib/tcl8.6 D:/workspacePython/venv/lib/tcl8.6 D:/workspacePython/lib/tcl8.6 D:/workspacePython/venv/library D:/workspacePython/library D:/workspacePython/tcl8.6.13/library D:/tcl8.6.13/library
This probably means that Tcl wasn't installed properly.
解决方式有两种
第一种方式:在导入tcl和tk之前需要先用os模块指定这两个文件
import tkinter
import os
# 去python安装目录
os.environ["TCL_LIBRARY"] = r"C:\Users\你的用户文件名\AppData\Local\Programs\Python\Python313\tcl\tcl8.6"
os.environ["TK_LIBRARY"] = r"C:\Users\你的用户文件名\AppData\Local\Programs\Python\Python313\tcl\tk8.6"
tkinter._test()
再次启动程序:运行成功
第二种方式:找到安装python目录,把这两个目录复制到你项目创建的虚拟目录lib目录下
复制到我的工作虚拟目录下
再次运行程序,不需要手动指定os了