【发布时间】:2014-06-27 03:48:28
【问题描述】:
cx_freeze 是否包含其自己的编译器,该编译器来自 Python -> 二进制文件?还是翻译它(例如翻译成 C),并编译翻译后的代码?
编辑:它似乎被编译为字节码。那么这是否意味着 cx_freeze exe 只是 Python 解释器的字节码 -> 二进制部分?
【问题讨论】:
cx_freeze 是否包含其自己的编译器,该编译器来自 Python -> 二进制文件?还是翻译它(例如翻译成 C),并编译翻译后的代码?
编辑:它似乎被编译为字节码。那么这是否意味着 cx_freeze exe 只是 Python 解释器的字节码 -> 二进制部分?
【问题讨论】:
cx_Freeze 并没有真正编译您的代码。它实际上只是将您的 Python 代码与 Python 解释器打包在一起,因此当您启动应用程序时,它会设置一个 Python 解释器并开始运行您的 Python 代码。它具有从 Python 源代码或字节码运行所需的机制,但它主要将模块存储为字节码,因为这样可以更快地加载。
像 Cython 和 Nuitka 这样的选项更进一步 - 它们将您的代码转换为 C 并将其编译为机器代码,但它们仍然使用 Python VM 机器。它只是调用 Python 功能的编译代码,而不是运行 Python 字节码的 VM。
【讨论】: