我可以将CPython嵌入PyPy吗?

4 投票
2 回答
966 浏览
提问于 2025-04-17 04:38

我想用Python写一个对性能要求很高的应用程序,所以选择在PyPy下运行是个不错的主意。不过,我的代码中有很大一部分依赖于numpy、scipy和scikit-learn这些库。请问有没有办法在运行的PyPy程序中嵌入一个CPython实例,以便调用那些以数组为中心的代码?如果不行,那让PyPy和CPython之间互相交流的最简单方法是什么呢?

2 个回答

4

目前来说,最好的选择是Cython,而不是PyPy。如果你添加类型声明,它的性能可以达到C语言的水平,而且与numpy等库的结合非常好。

现在有人正在努力让它与PyPy更好地配合,但这还需要一些时间。

2

不,按照我所知道的,你不能把CPython嵌入到PyPy里面。不过,你可以使用分布式或并行执行的系统,让PyPy和CPython进行沟通。execnetPyro这两个工具就提到了这种PyPy <-> CPython的用法。Python Wiki上关于并行处理的其他包也可能适合这个需求。

另外,正如delnan提到的,目前有一个关于PyPy开发者计划在PyPy中实现Numpy的讨论(不过目前还不支持scipy和scikit.learn)。

撰写回答