我一直在查阅参考文档,但找不到关于PyPy的C接口的任何信息。这个接口存在吗?如果存在,它和CPython的C接口是一样的吗?如果在CPython上运行PyPy,这会有什么变化吗?
PyPy通过一个叫做CPyExt的模拟层,提供了对CPython扩展API的初步支持。你可以看看这篇博客文章,介绍了这种支持;还有这篇后续文章,进一步讨论了这个话题。如果你的目标是和一个C语言库进行交互,最好的办法可能是写一个Python包装模块,使用ctypes来调用它。
ctypes
在CPython上运行PyPy并没有帮助(而且会让速度变得非常慢),因为API不会和PyPy的对象模型互动,而是和CPython的主环境互动。