鱼C论坛

 找回密码
 立即注册
查看: 1657|回复: 13

[已解决]easygui

[复制链接]
发表于 2022-2-16 19:47:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
报错  :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
最佳答案
2022-2-16 19:52:55
本帖最后由 isdkz 于 2022-3-15 19:45 编辑

这是 python3.10 的问题,因为 python3.10 把 Sequence 这个类移至了 collections.abc 模块,

easygui 还没更新版本来适配 python3.10,依然使用 collections 模块引入 Sequence 这个类,所以就出错了,

你可以看看这个,https://stackoverflow.com/questi ... -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
就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-16 19:52:42 | 显示全部楼层
这个是你easygui与python的版本不兼容,
可以把python版本降低,
也可以:https://fishc.com.cn/thread-204504-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-16 19:52:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-3-15 19:45 编辑

这是 python3.10 的问题,因为 python3.10 把 Sequence 这个类移至了 collections.abc 模块,

easygui 还没更新版本来适配 python3.10,依然使用 collections 模块引入 Sequence 这个类,所以就出错了,

你可以看看这个,https://stackoverflow.com/questi ... -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
就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-2-17 11:07:58 | 显示全部楼层
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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-17 11:15:57 | 显示全部楼层
不弃_ 发表于 2022-2-17 11:07
我报错信息有四个文件,都改吗?

都一样,但是这文件找不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-17 11:20:36 | 显示全部楼层
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-17 11:58:57 | 显示全部楼层
QQ图片20220217115751.png
isdkz 发表于 2022-2-17 11:20
报错里面的文件肯定是存在的,你把 C:%users\Lenovo\AppData\Local\Programs\Python\Python310\lib\sit ...


E:\照片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-17 12:03:44 | 显示全部楼层
本帖最后由 isdkz 于 2022-2-17 12:11 编辑

不要带双引号,直接填在我划线的地方
最好不要把后面那个 choice_box.py 也输到地址栏里
因为你的 .py 文件的默认打开方式不是编辑器的话就直接运行了

IMG_20220217_120254.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-17 12:15:49 | 显示全部楼层
不弃_ 发表于 2022-2-17 11:07
我报错信息有四个文件,都改吗?


你看最后那个就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-17 13:14:06 | 显示全部楼层
isdkz 发表于 2022-2-17 12:15
你看最后那个就行了

找到了找到了
感谢大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-11 23:12:22 | 显示全部楼层
isdkz 发表于 2022-2-16 19:52
这是 python3.10 的问题,因为 python3.10 把 Sequence 这个类移至了 collections.abc 模块,

而 easygu ...

感谢大哥,终于解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-11 23:17:13 | 显示全部楼层
规律性误差 发表于 2022-3-11 23:12
感谢大哥,终于解决了

不客气,不过我很好奇你是怎么找得到这个帖子的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-13 18:00:23 | 显示全部楼层
isdkz 发表于 2022-3-11 23:17
不客气,不过我很好奇你是怎么找得到这个帖子的?

就是搜的easygui然后一个一个找的
一开始环境变量搞了半天然后又是运行错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-5 15:21:15 From FishC Mobile | 显示全部楼层
B站看视频了解的fishc网站,没想到能人辈出,相知恨晚,奋起直追
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-11 16:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表