我可以在PyPy中嵌入CPython吗?

时间:2011-10-19 16:47:12

标签: python numpy cython cpython pypy

我想在Python中编写一个对性能敏感的应用程序,因此在PyPy下执行它是一个很自然的选择。但是,我的代码的很大一部分取决于numpy,scipy和scikit-learn。是否可以在运行的PyPy程序中嵌入CPython实例以调用面向数组的代码?如果没有,那么让PyPy和CPython互相交流的最简单方法是什么?

2 个答案:

答案 0 :(得分:4)

你最好的选择是Cython而不是PyPy。它具有c级性能,如果你添加类型声明,以及与numpy等的优秀集成。

人们正在努力让它与PyPy一起使用,但这还有很长的路要走。

答案 1 :(得分:2)

不,你不能在PyPy AFAIK中嵌入CPython。但是,您可以使用分布式/并行执行系统使PyPy与CPython通信。 execnetPyro都提到了这个精确的PyPy <-> CPython用例。来自Python Wiki的Parallel Processing页面的其他软件包也可能是合适的。

另外,正如delnan所提​​到的那样,a current discussion关于PyPy开发人员的计划implementing Numpy in PyPy(其中不包括对scipy和scikit.learn的支持)。