可能重复:
编译Python到机器代码是否可行?
是否有可能从Python文件中将Python代码(加上它的依赖关系,以及解释器库)编译成一个本地的 Windows可执行文件( 没有任何与之捆绑在一起的)? (有点像用于Java的GNU编译器将Java编译成本地 (大型)可执行文件,其中包含真机器代码中的所有内容。)
如果是这样,我该怎么做呢?
(具体来说, py2exe
并没有做我想做的事情 – 它包括在一个单独的 ZIP文件中的库,它包括解释器作为一个单独的 DLL。)
为了强调,我不是要求“自解压档案”,“可执行包装器”,或其他方式的“作弊”捆绑在一个exe
文件 – 我正在寻找的东西,真正转换Python到一个本地可执行文件,就像GCJ为Java所做的一样。
只有以上是不可能的:
是否有可能至less从一个Python代码生成一个单一的可执行文件,包含解释器和所有的库依赖项,这样生成的可执行文件在运行之前不需要自行提取到目标磁盘上?
在这种情况下,“编译”要求是放松的:代码实际编译成机器代码(它可以简单地作为文本资源embedded到目标可执行文件中)并不重要,但结果必须是单一的 exe
文件[并没有别的]可以独立运行,特别是在运行之前不需要解压/安装任何东西到目标磁盘上。
Shed Skin可以将Python编译为C ++,但只能将其限制在一个子集中。 Python的某些方面很难编译为本地代码。
简短的答案是否定的,几乎所有的语言都会这样做:即使只是Windows系统的DLL,您编写的任何程序都将依赖于某些外部库。
如果你编写了一个C程序,并用微软的编译器进行编译,那么你仍然需要安装C运行库。 机会已经在大多数系统上,但不能保证。 同样,即使您设法编译静态链接到其库的C Python解释器,您仍然需要从某处获取C运行时。
我怀疑你真的要问的是,你是否可以编译成一个只依赖于你已经安装了合理期望的库的.exe。 所以这一切都取决于你愿意考虑基础系统的一部分? 你可以假设.net框架4或Silverlight的安装? 如果是这样,你可能想看看IronPython。
同样,可以使用Visual Studio工具链或MinGW来构建pypy,但是我相信在这两种情况下,运行时仍然需要一些外部库。