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

通过discord.Bot的loop.create_task运行Quart时出现意外关键字参数loop错误

问题原因
  • 该错误属于Python 3.10+版本的兼容性问题:Python 3.10开始asyncio.start_server、loop.create_server等异步API正式移除了废弃的loop关键字参数,你当前使用的Hypercorn(Quart默认的ASGI服务器)版本还在向这些API传递loop参数,触发类型错误。
  • 补充:你调用app.run_task的写法虽然没有直接触发报错,但参数传递不够规范,存在版本兼容隐患。
解决方案

首先执行依赖升级命令,直接修复Hypercorn的兼容问题:

pip install --upgrade quart hypercorn

升级完成后调整启动代码,规范run_task的参数写法即可正常运行:

def start():
    # 显式指定host、port参数,避免参数位置匹配错误
    bot.loop.create_task(app.run_task(host="0.0.0.0", port=5000))
    load_commands()
    print(f"loaded commands: {loaded_commands}")
    bot.run(TOKEN)

如果升级依赖后仍存在异常,可以手动替换为uvicorn作为Quart的运行服务器,修改启动任务逻辑即可:

import uvicorn

async def run_quart():
    config = uvicorn.Config(app, host="0.0.0.0", port=5000)
    server = uvicorn.Server(config)
    await server.serve()

def start():
    bot.loop.create_task(run_quart())
    load_commands()
    print(f"loaded commands: {loaded_commands}")
    bot.run(TOKEN)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:45:03