我想在Python中编写一个对性能敏感的应用程序,因此在PyPy下执行它是一个很自然的选择。但是,我的代码的很大一部分取决于numpy,scipy和scikit-learn。是否可以在运行的PyPy程序中嵌入CPython实例以调用面向数组的代码?如果没有,那么让PyPy和CPython互相交流的最简单方法是什么?
答案 0 :(得分:4)
你最好的选择是Cython而不是PyPy。它具有c级性能,如果你添加类型声明,以及与numpy等的优秀集成。
人们正在努力让它与PyPy一起使用,但这还有很长的路要走。
答案 1 :(得分:2)
不,你不能在PyPy AFAIK中嵌入CPython。但是,您可以使用分布式/并行执行系统使PyPy与CPython通信。 execnet和Pyro都提到了这个精确的PyPy <-> CPython
用例。来自Python Wiki的Parallel Processing页面的其他软件包也可能是合适的。
另外,正如delnan所提到的那样,a current discussion关于PyPy开发人员的计划implementing Numpy in PyPy(其中不包括对scipy和scikit.learn的支持)。