【发布时间】:2018-10-10 18:25:34
【问题描述】:
这是一个显而易见的问题,我无法找到具体的答案。
Python Byte-Code 和 Python Code 本身是否独立于解释器,
意思是,如果我使用 CPython、PyPy、Jython、IronPython、Skulpt 等解释器并尝试运行 python 或字节码中的同一段代码,它会正确运行吗? (前提是它们实现相同的语言版本,并使用严格用 Python 编写的模块或标准模块)
如果是这样,是否有一个基准,或者我可以比较许多解释器的性能比较的地方?
我已经玩了一段时间的 CPython,现在我想探索新的解释器。
还有一个附带问题,python 的其他实现有什么用途? Skulpt 我明白了,浏览器,但其余的呢?是否有特定的行业或应用需要不同的解释器(哪个)?
【问题讨论】:
-
你说的python字节码是什么意思?你是说 pyc 文件还是 dis.dis 输出?我很确定 pyc 文件大致可互换......(可能不是 skulpt......但也许)只要您只使用兼容的功能......我假设实际的字节码(即
dis.dis) 是不同的......但这一切都只是假设......你的用例是什么? -
在执行
dis-assembly 一段代码时得到的类似汇编的代码,pyc文件的人类可读版本。 -
但在任何一种情况下,它都易于测试......而且几乎可以肯定不同版本之间存在差异(即 2.6 与 2.7 或 3.1 与 3.4)
-
如果你使用不同版本的python运行相同的python文件,pycache文件夹将有多个pyc文件,文件名附加不同的python版本。
标签: python pypy pythoninterpreter