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

Discord机器人启动报错TypeError:需asyncio.Future/协程/可等待对象

问题解决步骤

核心错误原因

  1. client.run()调用位置错误:你将启动机器人的代码放在了on_ready事件定义之前,导致机器人启动时该事件还未完成注册,因此不会触发打印提示语的逻辑。
  2. Spyder环境与异步循环冲突:nest_asyncio的引入加剧了Spyder内核与discord.py异步循环的冲突,直接引发了TypeError报错。

解决方案

方案1:调整代码顺序+使用普通Python环境运行(推荐)

修改代码结构,将client.run()移至所有事件函数定义之后,同时移除不必要的异步依赖(discord.py内部已处理异步循环逻辑):

import discord

client = discord.Client(intents=discord.Intents.default())

@client.event
async def on_ready():
    print("Le bot est prêt !")

# 启动代码必须放在事件定义之后
client.run("你的机器人Token")

运行方式:不要用Spyder,直接打开命令行,进入代码所在目录执行:

python 你的代码文件名.py

方案2:Spyder环境兼容运行(不推荐)

若必须使用Spyder,调整启动方式,用asyncio.run替代client.run:

import discord
import asyncio
import nest_asyncio

nest_asyncio.apply()

client = discord.Client(intents=discord.Intents.default())

@client.event
async def on_ready():
    print("Le bot est prêt !")

# 改用asyncio.run启动机器人
asyncio.run(client.start("你的机器人Token"))

注:此方式仍可能存在环境冲突问题,优先选择方案1。

重要提醒

  • 你提供的机器人Token已公开泄露,请立即前往Discord开发者平台重置Token,避免账号被盗用。
  • 确保在Discord开发者平台为机器人开启了必要的Intents权限,否则可能出现功能异常。

内容的提问来源于stack exchange,提问作者Daeltam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:12:44