我正在使用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 docs和this blog post,它们描述了PyPy中的AST功能与CPython中的AST功能相同。
关于python - python内置插件是否始终是C扩展(甚至在PyPy上)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9936821/