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

使用Dask异步Client时await futures出现TypeError报错

解决异步Dask Client中await futures或gather报错的问题

错误原因

  1. 直接await futures报错是因为await只能作用于单个可等待对象,而你传入的是Future对象的列表,Python无法直接await一个列表。
  2. 当Client开启asynchronous=True时,dask_client.gather()是异步方法,必须搭配await使用,直接调用会返回协程对象,后续处理不当也会引发问题。

正确用法

方法1:使用异步版gather并搭配await(推荐)

results = await dask_client.gather(futures)

异步Client的gather方法会自动处理列表中的所有Future,返回对应结果列表,且做了集群层面的优化,效率更高。

方法2:用asyncio.gather逐个等待Future(不推荐)

如果需要单独处理每个Future,可以借助asyncio的gather方法:

import asyncio
results = await asyncio.gather(*futures)

这种方式仅适用于本地协程等待,没有Dask集群层面的优化,大任务场景下效率较低。

关键注意事项

  • 所有异步调用必须在异步上下文中执行:比如在async def定义的函数内,或者用asyncio.run()包裹整个异步逻辑。
  • 异步Client的绝大多数方法都是异步的,调用时必须添加await关键字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:30:53