是否可以将PyPy嵌入到.NET应用程序中?

时间:2011-05-21 21:54:19

标签: python .net pypy python-embedding python-stackless

我想在我的.NET应用程序中嵌入一个Python解释器。当然,我知道IronPython,但我对PyPy特别感兴趣,因为它支持无堆栈和微线程。

然而,虽然PyPy可以针对CLI构建,但它看起来只是给你一个独立的Python解释器和python.exe。我无法找到任何可以构建实际嵌入.NET主机应用程序内容的文档。

有没有办法使用(无堆栈)PyPy从.NET应用程序运行Python脚本,并允许这些脚本与主机应用程序提供的CLR对象进行交互?

2 个答案:

答案 0 :(得分:5)

PyPy的CLI后端并不像C后端那样成熟,也没有与.NET库集成。虽然编译为C的普通PyPy已准备好生产,但我不会将.NET版本生产称为准备好。它也缺少JIT(尽管在这方面已经完成了一些工作)和微线程。除非有人介入,否则IronPython似乎是目前唯一可行的选择。

答案 1 :(得分:3)

不,没有。 CPython能够使用在github上维护的Python for .NET(参见http://pythonnet.github.io/)来访问.NET库,但除了IronPython之外,从来没有一种方法可以将Python解释器实际嵌入到.NET应用程序中。这是它的主要卖点之一。

在相关的说明中,IronPython(默认情况下)在递归方面的堆栈大小小于CPython。也就是说,您必须将“-X:FullFrames”命令行选项传递给ipy.exe以启用CPython-esque堆栈帧。知道这不如PyPy ......但它可能会有所帮助:)。

相关问题