You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的标准调试状态获取方法:
    1. 用pip show r6statsapi查看库的安装路径
    2. 打开库中涉及asyncio的文件,搜索asyncio.coroutines._DEBUG
    3. 将其替换为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:52:46