修补asyncio以允许嵌套事件循环
nest-asyncio的Python项目详细描述
简介
按设计异步does not allow 其事件循环将被嵌套。这就提出了一个实际问题: 在事件循环为 已经在运行无法运行任务并等待 为了结果。试图这样做会导致错误 “RuntimeError: This event loop is already running”。
这个问题会在不同的环境中出现,比如Web服务器, gui应用程序和jupyter笔记本。
此模块修补asyncio以允许嵌套使用asyncio.run和 loop.run_until_complete。
安装
pip3 install nest_asyncio
需要Python3.5或更高版本。
用法
importnest_asyncionest_asyncio.apply()
可选地,可以给出需要修补的特定循环 作为apply的参数,否则使用当前事件循环。 无论事件循环是否已在运行,都可以对其进行修补 或者不。只能修补来自asyncio的事件循环; 来自其他项目(如uvloop或quamash)的循环, 一般不能修补。