特定的Python版本字节码可以在不同的解释器上运行吗?

时间:2016-10-20 00:46:40

标签: python

我一直在阅读Python解释器,特别是CPython和PyPy,我知道运行Python代码有两个步骤:

  1. 转换为字节码
  2. 解释为MachineCode
  3. 我的问题是,如果字节码是由CPython生成的,比如Python版本2.7.0,那么字节码会在PyPy上运行Python 2.7.0吗?

1 个答案:

答案 0 :(得分:1)

没有。字节代码在版本之间发生变化,并使用幻数标记,以明确它将使用哪些解释器。而这只是 CPython中,在CPython和PyPy之间,他们甚至不必就你在哪里寻找神奇数字达成一致,更不用说它意味着什么了。 .pyc文件在很大程度上是一种优化,不像源文件那样可移植;如果他们与理解他们的翻译一起分发,他们只能分发。

基本上,Python语言标准涵盖源语法和库,而不是字节代码格式