编写简易PySimpleGUI程序时遭遇AttributeError错误求助
解决PySimpleGUI循环导入导致的AttributeError问题
问题根源
你的PySimpleGUI代码本身没有错误,报错的核心原因是你的项目目录下存在一个名为random.py的自定义文件:
- 当PySimpleGUI内部执行
import random时,Python的模块查找机制会优先加载当前工作目录下的random.py,而非Python标准库的random模块。 - 而你编写的
random.py中,又尝试使用sg.Text组件,此时PySimpleGUI还未完成初始化,形成循环导入,最终触发AttributeError。
解决步骤
- 立即重命名你的自定义
random.py文件,比如改为my_random_utils.py,彻底避免和标准库模块名冲突。 - 删除该文件对应的
__pycache__缓存文件夹(如果存在),防止缓存残留导致问题。 - 检查项目目录,确保没有其他与Python标准库同名的文件(如
math.py、datetime.py等),这类命名冲突是常见的隐性bug。
验证
修改完成后,重新运行你的代码:
import PySimpleGUI as psg abc=psg.Button("hi") psg.Window("hi",layout=[[abc]]).read()
此时应该能正常弹出包含"hi"按钮的窗口。
内容的提问来源于stack exchange,提问作者Rhythem makkar
相关产品推荐
相关产品推荐

