You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.9.7中tkinter出现AttributeError及循环导入问题咨询

问题解析与解决办法

关于"partially initialized module"的含义

简单来说:Python在导入某个模块的过程中,还没把这个模块的所有代码执行完、所有属性加载完成时,又触发了对该模块的再次导入(也就是循环导入),导致模块处于「加载到一半」的状态。这时候模块里的很多属性还没定义,自然就找不到你要访问的内容。

你的具体问题原因

从报错路径能明确看出:你自己的项目目录下有个叫tkinter.py的文件!当你执行import tkinter时,Python会优先加载当前目录下的这个自定义文件,而不是系统自带的tkinter模块。之后在这个自定义的tkinter.py第13行,你写了root = tkinter.tk(),这相当于又要导入tkinter(也就是你自己的这个文件),但此时这个文件还没加载完,形成了循环导入,导致模块处于部分初始化状态;同时你还写错了系统tkinter的API(正确写法是大写的Tk(),而非小写的tk())。

解决步骤

  • 立刻重命名你自己的tkinter.py文件,比如改成my_gui.py,绝对不能和系统自带的模块名重名。
  • 删除当前目录下的__pycache__文件夹(这是Python生成的模块缓存,不删除可能会残留旧问题)。
  • 修正代码错误:如果是用系统tkinter创建窗口,应写root = tkinter.Tk();如果只是测试tkinter是否正常,直接运行tkinter._test()即可(前提是模块导入正确)。

内容的提问来源于stack exchange,提问作者Mick Hawkes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:55:29