在jupyter notebook中使用asyncio的tqdm。

6

我在Jupyter笔记本中使用tqdm处理异步操作,应该使用tqdm.notebook(它可以提供正确的部件)还是tqdm.asyncio(它可能可以提供正确的行为--在我的使用中,items/sec计算似乎错误)。


你对这两个方案有什么建议?我有一个tqdm笔记本,但正在考虑尝试使用asyncio编写我的for循环。 - steven hurwitt
我使用了tqdm.notebook。 - retorquere
1个回答

1
您可以在jupyter笔记本中使用一个与asyncio兼容的tqdm版本,方法是使用此stackoverflow线程中的解决方案,并将您使用的tqdm替换为笔记本版本。
from tqdm.notebook import tqdm

async def factorial(name, number):
    f = 1
    for i in range(2, number + 1):
        await asyncio.sleep(random.random())
        f *= i
    return f"Task {name}: factorial {number} = {f}"

requests = [factorial("A", 2), factorial("B", 3), factorial("C", 4)]
responses = [await f for f in tqdm(asyncio.as_completed(requests), total=len(requests))]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接