出现以下错误:TypeError: object list can't be used in 'await' expression
当我试图等待未来的dask_client.gather(futures)
或await futures
。
我正在使用asynchronous=True
的Dask客户端
尝试参考官方文档https://distributed.dask.org/en/stable/asynchronous.html
出现以下错误:TypeError: object list can't be used in 'await' expression
当我试图等待未来的dask_client.gather(futures)
或await futures
。
我正在使用asynchronous=True
的Dask客户端
尝试参考官方文档https://distributed.dask.org/en/stable/asynchronous.html
1条答案
按热度按时间yc0p9oo01#
错误“类型错误:对象列表不能用于'await'表达式”出现,因为您尝试在Python列表上使用await关键字,而该列表不是异步对象。
当使用带有asynchronous=True选项的Dask Client时,gather方法返回Futures的列表,而不是可等待的对象。
以下是您可以解决此问题的方法:
您可以使用dask.async.compute函数将future列表转换为可等待的对象,而不是等待future列表。
您还可以使用dask.compute函数将future列表转换为结果列表
另一种选择是使用concurrent.futures.as函数,该函数返回一个迭代器,该迭代器在future完成时生成future。
值得注意的是,在使用dask和asyncio时,建议使用dask.compute或dask.async.compute函数,而不是dask_client.gather函数。
此外,请确保您使用的是最新版本的Dask,因为此错误可能已在最新版本中得到解决。