17

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

然而,虽然 PyPy 可以针对 CLI 构建,但它看起来只是为您提供了一个独立的 Python 解释器,例如 python.exe。我还没有找到任何文档来构建可以实际嵌入到 .NET 主机应用程序中的东西。

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

4

2 回答 2

5

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

于 2011-05-23T17:17:55.840 回答
3

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

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

于 2011-05-22T06:47:05.057 回答