2011-07-13 64 views
3

我一直在寻找通过参考文档,并不能找到一个C API为PyPy的任何提及。它存在吗?如果是这样,它与CPython C API相同?如果PyPy运行在CPython之上,它会改变它吗?PyPy C/API访问

回答

3

PyPy具有alpha-level support用于经由称为CPyExt仿真层的CPython的扩展API。这里有一个blog post introducing the support;这里是a later one discussing it。如果您的目标是与C库进行交互,那么最好使用ctypes来编写一个Python包装器模块。

在CPython上运行PyPy不会帮助(除了减慢速度),因为API不会与PyPy的对象模型进行交互 - 它将与CPython宿主环境进行交互。

+0

我的目标是将其用于Python嵌入到C++应用程序 –

+0

申请是否已经使用Python C API?嵌入的目标是什么? (这里有一个嵌入与扩展,可能会或可能不适合您使用情况的咆哮:http://www.twistedmatrix.com/users/glyph/rant/extendit.html) – Miles

+0

我们使用它的那一刻嵌入。我意识到所有反对它的论点,但扩展不是我们当前设置中的一个选项,我们被迫与系统的其他部分集成。花了很长时间解释这可能不是最好的解决方案,但没有其他人同意,因为它是更多的工作 –