我正在使用Python的文档API,我将其称为Python Docs,并且我注意到静态分析套件几乎无法访问所有内置插件,因为它们几乎都是C模块。据我所记得,我想不出这条规则的任何异常(exception)。

我的问题的第一部分很简单,在CPython中,内置模块是否要以C扩展为前提?

假设情况确实如此,我编译了一个新的pypy运行时,并尝试将我的项目与pypy的内置程序配合使用。我很惊讶地发现这也不起作用。

如果PyPy模块是纯Python,为什么PyPy模块不可用AST对象?将PyPy托管在JIT上是否有副作用?

最佳答案

PyPy有两个部分-Python解释器和翻译工具链。

转换工具链将解释器从RPython转换/“编译”为机器代码。

因此,尽管PyPy是使用Python的子集语言编写的,但使用它时不是Python。

您应该阅读compiler section of the PyPy Parser docsthis blog post,它们描述了PyPy中的AST功能与CPython中的AST功能相同。

关于python - python内置插件是否始终是C扩展(甚至在PyPy上)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9936821/

10-11 04:50
查看更多