asyncio报错AttributeError:module 'asyncio.coroutines'无_DEBUG属性求助
解决Discord R6数据机器人启动时的asyncio._DEBUG属性错误
问题详情
启动用于显示R6玩家数据的Discord机器人时,触发以下错误:
AttributeError: module 'asyncio.coroutines' has no attribute '_DEBUG'
已尝试更换不同IDE,排除代码本身问题,定位到asyncio库相关问题。相关核心代码如下:
import random import r6statsapi def handle_response(message) -> str: p_message = message.lower() client = r6statsapi.Client('TOKEN') if p_message == 'hello': return 'Hey there!' if p_message == 'roll': return str(random.randint(1, 6)) if p_message == '!help': return "`No help yet ;(`" name = '' if p_message == f'!stats {name}': return f"Here you go ;) {client.get_generic_stats(name, r6statsapi.Platform.uplay)}"
解决步骤
- 检查Python版本兼容性:
asyncio.coroutines._DEBUG是Python 3.7及更早版本的内部属性,3.8+版本已移除。若你的环境用了高版本Python,但r6statsapi库仍在调用该废弃属性,就会触发错误。 - 降级Python版本:若不想修改库代码,可临时将Python版本降级到3.7.x,适配旧版asyncio的内部实现。
- 修改依赖库代码:找到
r6statsapi库中调用asyncio.coroutines._DEBUG的位置,替换为新版asyncio的标准调试状态获取方法:- 用
pip show r6statsapi查看库的安装路径 - 打开库中涉及asyncio的文件,搜索
asyncio.coroutines._DEBUG - 将其替换为
asyncio.get_event_loop().get_debug()
- 用
- 升级依赖库:执行
pip install --upgrade r6statsapi,查看是否有修复版本解决了Python兼容问题。
补充代码优化提示
当前代码中name = ''的写法会导致!stats指令无法匹配真实玩家名称,建议修改为从消息中提取名称:
if p_message.startswith('!stats'): # 拆分消息获取玩家名称 parts = p_message.split(maxsplit=1) if len(parts) < 2: return "请输入玩家名称,格式:!stats [玩家名]" name = parts[1] stats = client.get_generic_stats(name, r6statsapi.Platform.uplay) return f"Here you go ;) {stats}"
内容的提问来源于stack exchange,提问作者Density
相关产品推荐
相关产品推荐

