easygui
报错:module 'collections' has no attribute 'Sequence',这是怎末回事?import easygui as g
import sys
while 1:
g.msgbox("嗨,欢迎进入第一个界面小游戏^_^")
msg ="请问你希望在鱼C工作室学习到什么知识呢?"
title = "小游戏互动"
choices = ["谈恋爱", "编程", "OOXX", "琴棋书画"]
choice = g.choicebox(msg, title, choices)
# 注意,msgbox的参数是一个字符串
# 如果用户选择Cancel,该函数返回None
g.msgbox("你的选择是: " + str(choice), "结果")
msg = "你希望重新开始小游戏吗?"
title = "请选择"
# 弹出一个Continue/Cancel对话框
if g.ccbox(msg, title):
pass # 如果用户选择Continue
else:
sys.exit(0) # 如果用户选择Cancel
这个是你easygui与python的版本不兼容,
可以把python版本降低,
也可以:https://fishc.com.cn/thread-204504-1-1.html 本帖最后由 isdkz 于 2022-3-15 19:45 编辑
这是 python3.10 的问题,因为 python3.10 把 Sequence 这个类移至了 collections.abc 模块,
而 easygui 还没更新版本来适配 python3.10,依然使用 collections 模块引入 Sequence 这个类,所以就出错了,
你可以看看这个,https://stackoverflow.com/questions/69596494/unable-to-import-freegames-python-package-attributeerror-module-collections,
里面的解答中有提到 collections 模块根据 python 版本的迭代历程
解决方法:
File "C:\Users\*****\AppData\Local\Programs\Python\Python310\lib\site-packages\easygui\boxes\choice_box.py", line 95, in make_list_or_none
if not isinstance(obj, collections.Sequence):
AttributeError: module 'collections' has no attribute 'Sequence'
根据你相对应的报错信息找到 File 后面的这个文件,
比如我的是 C:\Users\*****\AppData\Local\Programs\Python\Python310\lib\site-packages\easygui\boxes\choice_box.py 这个文件,
这个路径有点长,你不用一级一级地找,直接把路径复制到资源管理器的地址栏即可,
注:你的路径可能会跟我的不一样,你根据你自己的报错信息那里复制
把这个文件的第一行 import collections 改成
import collections.abc as collections
就可以了
isdkz 发表于 2022-2-16 19:52
这是 python3.10 的问题,因为 python3.10 把 Sequence 这个类移至了 collections.abc 模块,
而 easygu ...
我报错信息有四个文件,都改吗?
Traceback (most recent call last):
File "C:\Users\Lenovo\Desktop\新建文本文档.py", line 11, in <module>
choice = g.choicebox(msg, title, choices)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python310\lib\site-packages\easygui\boxes\choice_box.py", line 38, in choicebox
mb = ChoiceBox(msg, title, choices, preselect=preselect,
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python310\lib\site-packages\easygui\boxes\choice_box.py", line 123, in __init__
preselect_list = make_list_or_none(preselect, cast_type=int)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python310\lib\site-packages\easygui\boxes\choice_box.py", line 95, in make_list_or_none
if not isinstance(obj, collections.Sequence):
AttributeError: module 'collections' has no attribute 'Sequence' 不弃_ 发表于 2022-2-17 11:07
我报错信息有四个文件,都改吗?
都一样{:5_109:},但是这文件找不到 本帖最后由 isdkz 于 2022-2-17 12:35 编辑
不弃_ 发表于 2022-2-17 11:15
都一样,但是这文件找不到
报错里面的文件肯定是存在的,你把 C:\Users\Lenovo\AppData\Local\Programs\Python\Python310\lib\site-packages\easygui\boxes\choice_box.py 这个直接粘贴到资源管理器的地址栏,
如果你嫌麻烦且信任论坛里大佬修订好的版本的话,
可以看这个 https://fishc.com.cn/thread-204504-1-1.html
isdkz 发表于 2022-2-17 11:20
报错里面的文件肯定是存在的,你把 C:%users\Lenovo\AppData\Local\Programs\Python\Python310\lib\sit ...
E:\照片 本帖最后由 isdkz 于 2022-2-17 12:11 编辑
不要带双引号,直接填在我划线的地方
最好不要把后面那个 choice_box.py 也输到地址栏里
因为你的 .py 文件的默认打开方式不是编辑器的话就直接运行了
不弃_ 发表于 2022-2-17 11:07
我报错信息有四个文件,都改吗?
你看最后那个就行了 isdkz 发表于 2022-2-17 12:15
你看最后那个就行了
找到了找到了{:5_108:}
感谢大哥 isdkz 发表于 2022-2-16 19:52
这是 python3.10 的问题,因为 python3.10 把 Sequence 这个类移至了 collections.abc 模块,
而 easygu ...
感谢大哥,终于解决了 规律性误差 发表于 2022-3-11 23:12
感谢大哥,终于解决了
不客气{:5_109:},不过我很好奇你是怎么找得到这个帖子的? isdkz 发表于 2022-3-11 23:17
不客气,不过我很好奇你是怎么找得到这个帖子的?
就是搜的easygui然后一个一个找的
一开始环境变量搞了半天然后又是运行错误{:10_266:}{:10_266:} B站看视频了解的fishc网站,没想到能人辈出,相知恨晚,奋起直追
页:
[1]