python - PyPy 可以与 asyncio 一起使用吗?

标签 python performance asynchronous python-asyncio pypy

PyPy 是否支持 aio 和 Python 3.5?

我需要PyPy的性能和asyncio的异步代码。我还需要在我的代码中使用 async/await。这可能吗?

如果是这样,有什么细微差别?

最佳答案

PyPy 的当前版本(撰写本文时为 7.2.0 版)至少在 Linux 和 Windows 上支持 asyncio。


旧的,现已过时(截至 2019-10-20)的注释:

目前有兼容Python 3.5的PyPy版本(v7.0)和兼容Python 3.6的beta版本(v7.1.1)。两个版本都支持 Linux 上的 asyncio(可能还有 macOS,但我自己没试过),但只有后者支持 Windows 上的 asyncio。


旧的,现已过时(截至 2019-04-16)的注释:

目前 PyPy 支持 Python 3.5,因此 asyncio 应该可以正常工作。然而,Windows 上的 Python 3.x 仍然是测试版质量。不幸的是,目前尚未实现在 Windows 上运行 asyncio 所需的重叠 IO 扩展模块。


旧的,现已过时(截至 2018-06-10)的注释:

目前 PyPy 支持 Python 3.5。请注意,PyPy 的 Python 3 支持目前只是测试版质量。我们正在不断努力改进它。不过,它还没有准备好投入生产。大多数涉及 asyncio 的代码应该都能正常工作。如果没有请check the open bug reportscreate a new one或者在评论中让我知道。


旧的,现已过时(截至 2017-08-18)的注释:

目前 PyPy 支持 Python 3.3。这意味着您可以 install asyncio在 PyPy3.3 上。请注意,PyPy 的 3.3 支持目前只是 alpha/beta 质量。然而,我们正在积极致力于提高 CPython 的性能和兼容性。

Python 3.5 中添加了 async/await 特性。我们开始了一个非常实验性的分支,支持 Python 3.5,但它还有很长的路要走。幸运的是,我们目前有一名 GSoC 学生正在研究它,但这仍然可能需要几年时间(取决于我们收到多少捐赠和志愿者工作)。

编辑 1:以前缺少运行 asyncio 的功能。它是在这次编辑之前不久实现的。答案已相应编辑。

编辑 2:我们刚刚发布了 PyPy3.3 的 alpha 版本。我们不建议任何人尝试仅支持 Python 3.2 的旧 PyPy3 版本。这就是我重写大部分答案的原因。


旧的,现已过时(截至 2016-05-30)的注释:

网站上的 PyPy3 版本非常旧,只实现了 Python 3.2 - 我们已经一年半没有发布了。因为 Python 3.2 缺少 yield from 特性,所以 asyncio 不能与这个版本一起工作。

关于python - PyPy 可以与 asyncio 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37419442/

相关文章:

python - cvtColor() 转换为 LAB 颜色空间后的 Numpy 8 位和 32 位图像数据类型

javascript - 为什么第四个嵌套值的访问速度比第五个慢?

java - while-else-循环

python - 如何永远运行异步 websocket 客户端?

python - python 线程和绿色线程中的 Lock 行为有什么区别?

python - 如何在 Python 的 MySQL 语句中使用 DATE_FORMAT?

performance - 在二维空间中查找矩形

c# - async/await - 这种理解是否正确?

swift - 如果未调用闭包,我如何使 XCTest 失败?

python - 如何在Python中获得分段线性函数