PyPy是否支持aio和Python 3.5?
我需要PyPy
的性能和asyncio
的异步代码。我还需要在代码中使用async/await
。这可能吗?
如果是这样,有什么细微差别?
答案 0 :(得分:15)
目前有一个与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仍然是beta版。不幸的是,目前在Windows上运行asyncio所需的重叠IO扩展模块尚未实现。
旧的,现已过时(截至2018-06-10)注:
目前PyPy支持Python 3.5。请注意,PyPy的Python 3支持目前只是beta版。我们一直在努力改进它。但它尚未准备好生产。涉及asyncio
的大多数代码应该可以正常工作。如果没有,请check the open bug reports或create a new one或在评论中告诉我。
旧的,现已过时(截至2017-08-18)注:
目前PyPy支持Python 3.3。这意味着您可以在PyPy3.3上install asyncio。请注意,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不适用于此版本。
答案 1 :(得分:0)
没有。根据{{3}},它只符合Python 3.2.5,而asyncio需要Python 3.4(实际上可以使用3.3上的pip安装,感谢@dirn)。同样在PyPy website,据说asyncio还没有在PyPy上工作(虽然Wiki最后一次更新于2015年8月)。