-
Notifications
You must be signed in to change notification settings - Fork 363
Open
Description
对应的文档链接链接:https://bot.q.qq.com/wiki/develop/pythonsdk/api/member/get_guild_members.html
当import qqbot
时,会出现如下报错:
Traceback (most recent call last):
File "d:\Desktop\temp\Pylab\qq-bot\1-0\1-2.获取用户列表.py", line 5, in <module>
import qqbot
File "C:\Users\esila\.conda\envs\qq-bot\Lib\site-packages\qqbot\__init__.py", line 3, in <module>
from .qqbotcls import QQBot, QQBotSlot, QQBotSched, RunBot, _bot
File "C:\Users\esila\.conda\envs\qq-bot\Lib\site-packages\qqbot\qqbotcls.py", line 20, in <module>
from qqbot.qconf import QConf
File "C:\Users\esila\.conda\envs\qq-bot\Lib\site-packages\qqbot\qconf.py", line 198, in <module>
from qqbot.utf8logger import SetLogLevel, INFO, RAWINPUT, PRINT, ERROR
File "C:\Users\esila\.conda\envs\qq-bot\Lib\site-packages\qqbot\utf8logger.py", line 10, in <module>
from qqbot.common import PY3
File "C:\Users\esila\.conda\envs\qq-bot\Lib\site-packages\qqbot\common.py", line 184, in <module>
import html.parser; htmlUnescape = html.parser.HTMLParser().unescape
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'HTMLParser' object has no attribute 'unescape'
我询问chatgpt,它给出的解决方案如下:
这个报错是由于在 Python 3.9 及以上版本中,html.parser.HTMLParser().unescape
已被移除。在 Python 3.9 及以上的版本中,你可以使用 html.unescape
来代替 HTMLParser().unescape
。
解决方法:
你可以修改 qqbot
库中的文件,或者找到一个兼容的版本。如果你不想修改库文件,可以按照以下步骤解决:
- 找到
qqbot
的安装目录,并打开文件utf8logger.py
。 - 在文件中找到这行代码:
将其修改为:
import html.parser; htmlUnescape = html.parser.HTMLParser().unescape
import html; htmlUnescape = html.unescape
这将使用 html.unescape
函数,兼容 Python 3.9 及以上的版本。
或者:
你可以降级到 Python 3.8 或更低版本,这样 html.parser.HTMLParser().unescape
就仍然存在。
如果这个方法不起作用,可能需要使用其他兼容的机器人库,例如 botpy
或者查看 qqbot
是否有更新版本来修复这个问题。
最终,我希望能够使用最新版本的库,来获取频道成员列表。当然,可能库中有对应的方法,本人水平低下,无法读懂,请多海涵,谢谢!
Metadata
Metadata
Assignees
Labels
No labels