如果你想要的只是一个独立的程序,用户可以下载和运行而不必先安装Python发行版,你就不需要能够将Python编译成C代码。有许多工具可以确定程序所需的模块集,并将这些模块与Python二进制文件绑定在一起以生成单个可执行文件。

一种是使用冻结工具,它包含在Python源代码树中 Tools/freeze。它将Python字节代码转换为C数组; 一个C编译器,您可以将所有模块嵌入到一个新程序中,然后将其与标准Python模块链接。

它的工作原理是递归扫描源代码以获取import语句(两种形式),并在标准Python路径和源目录(用于内置模块)中查找模块。然后,它将用Python编写的模块的字节码转换为C代码(可以使用编组模块转换为代码对象的数组初始化器),并创建一个定制的配置文件,该文件仅包含实际使用的内置模块。程序。然后,它编译生成的C代码并将其与Python解释器的其余部分链接,以形成一个独立的二进制文件,其行为与您的脚本完全相同。

显然,freeze需要一个C编译器。有几个其他公用事业没有。一个是Thomas Heller的py2exe(仅限Windows)

另一个工具是Anthony Tuininga的cx_Freeze