cx_freeze 如何编译 Python 脚本?
Posted
技术标签:
【中文标题】cx_freeze 如何编译 Python 脚本?【英文标题】:How does cx_freeze compile a Python script? 【发布时间】:2014-06-27 03:48:28 【问题描述】:cx_freeze 是否包含其自己的编译器,该编译器来自 Python -> 二进制文件?还是翻译它(例如翻译成 C),并编译翻译后的代码?
编辑:它似乎被编译为字节码。那么这是否意味着 cx_freeze exe 只是 Python 解释器的字节码 -> 二进制部分?
【问题讨论】:
【参考方案1】:cx_Freeze 并没有真正编译您的代码。它实际上只是将您的 Python 代码与 Python 解释器打包在一起,因此当您启动应用程序时,它会设置一个 Python 解释器并开始运行您的 Python 代码。它具有从 Python 源代码或字节码运行所需的机制,但它主要将模块存储为字节码,因为这样可以更快地加载。
像 Cython 和 Nuitka 这样的选项更进一步 - 它们将您的代码转换为 C 并将其编译为机器代码,但它们仍然使用 Python VM 机器。它只是调用 Python 功能的编译代码,而不是运行 Python 字节码的 VM。
【讨论】:
以上是关于cx_freeze 如何编译 Python 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
使用 cx_Freeze 执行的 Python 脚本,exe 啥也不做
带有 cx_freeze 的 python 3.2 tkinter 图标
如何减少 cx_Freeze 编译的 Python 可执行文件大小?