将asyncio修补为允许嵌套事件循环
项目描述
简介
按照设计,asyncio 不允许其事件循环嵌套。这带来了一个实际问题:当在事件循环已经运行的环境中时,无法运行任务并等待结果。尝试这样做将会给出错误“RuntimeError: This event loop is already running”。
这个问题在各种环境中都会出现,例如Web服务器、GUI应用程序和Jupyter笔记本。
此模块修补asyncio以允许嵌套使用asyncio.run和loop.run_until_complete。
安装
pip3 install nest_asyncio
需要Python 3.5或更高版本。
用法
import nest_asyncio
nest_asyncio.apply()
可以选择将需要修补的具体循环作为参数传递给apply,否则将使用当前事件循环。可以在事件循环正在运行或尚未运行的情况下修补事件循环。只有来自asyncio的事件循环才能被修补;来自其他项目(如uvloop或quamash)的循环通常无法被修补。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
nest_asyncio-1.6.0.tar.gz (7.4 kB 查看哈希值)
构建分发
nest_asyncio-1.6.0-py3-none-any.whl (5.2 kB 查看哈希值)