无法从正在运行的事件循环中调用asyncio.run()

无法从正在运行的事件循环中调用asyncio.run(),第1张

无法从正在运行的事件循环调用asyncio.run()

asyncio.run()
文件说:

当另一个异步事件循环在同一线程中运行时,无法调用此函数。

你的情况的问题是,jupyter(IPython中)已经运行的事件循环(对于IPython的≥7.0):

现在,您可以在IPython终端和笔记本中的顶层使用async /
await,在大多数情况下,它应该“正常工作”。将IPython更新到版本7+,将IPykernel更新到版本5+,您就可以开始比赛了。

这就是为什么您不需要在jupyter中自己启动事件循环,

await main(url)
甚至可以在外部异步函数中直接调用的原因。

在朱庇特

async def main():    print(1)await main()

在纯Python(≥3.7)中

import asyncioasync def main():    print(1)asyncio.run(main())

在您的代码中将给出:

url = ['url1', 'url2']result = await main(url)for text in result:    pass # text contains your html (text) response


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5662849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存