跳转到主要内容

将asyncio修补为允许嵌套事件循环

项目描述

Build PyPi Number of downloads

简介

按照设计,asyncio 不允许其事件循环嵌套。这带来了一个实际问题:当在事件循环已经运行的环境中时,无法运行任务并等待结果。尝试这样做将会给出错误“RuntimeError: This event loop is already running”。

这个问题在各种环境中都会出现,例如Web服务器、GUI应用程序和Jupyter笔记本。

此模块修补asyncio以允许嵌套使用asyncio.runloop.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 查看哈希值)

上传时间 Python 3

由支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面