Asyncio事件循环已关闭

Asyncio事件循环已关闭,第1张

Asyncio事件循环关闭

loop.close()
在运行该示例代码之前,您已经在全局事件循环上调用了:

>>> import asyncio>>> asyncio.get_event_loop().close()>>> asyncio.get_event_loop().is_closed()True>>> asyncio.get_event_loop().run_until_complete(asyncio.sleep(1))Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/.../lib/python3.6/asyncio/base_events.py", line 443, in run_until_complete    self._check_closed()  File "/.../lib/python3.6/asyncio/base_events.py", line 357, in _check_closed    raise RuntimeError('Event loop is closed')RuntimeError: Event loop is closed

您需要创建一个 循环:

loop = asyncio.new_event_loop()

您可以使用以下命令将其设置为新的全局循环:

asyncio.set_event_loop(asyncio.new_event_loop())

然后

asyncio.get_event_loop()
再次使用。

另外,只要重新启动Python解释器,第一次尝试获取全局事件循环时,您就会获得一个全新的,未关闭的循环。

从Python
3.7开始,在使用时会为您处理创建,管理和关闭循环的过程(以及其他一些资源)

asyncio.run()
。应该使用它代替
loop.run_until_complete()
,并且不再需要先获取或设置循环。



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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存