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

Python3.10下asyncio.get_event_loop弃用,替换为asyncio.run超时求解

修复方案

你可以使用显式创建、绑定事件循环的写法替换原有代码,既兼容Python 3.10+的规范,也不会破坏CCXT测试的原有生命周期逻辑:

if __name__ == '__main__':
    # 显式创建新事件循环,替代废弃的自动创建逻辑
    loop = asyncio.new_event_loop()
    # 将新建循环设为当前线程的事件循环
    asyncio.set_event_loop(loop)
    try:
        loop.run_until_complete(main())
    finally:
        # 测试完成后正常关闭循环
        loop.close()

原问题原因说明

  • 弃用警告触发原因:Python 3.10开始asyncio.get_event_loop()在没有当前活跃事件循环时,不再自动创建新循环,只会抛出弃用警告,原有依赖自动创建逻辑的代码都会触发该提示。
  • asyncio.run()超时原因:asyncio.run()执行完成后会强制销毁当前事件循环及所有未完成的异步资源,而CCXT的异步测试框架存在依赖事件循环存活的后置处理逻辑(比如跨语言测试结果上报、连接池回收),循环被提前销毁导致逻辑卡住,触发node侧调度的超时判定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:36:03