是否可以将Python代码(加上其依赖项和解释程序库)编译为单个本机 Windows可执行文件( nothing 从Python文件中捆绑的else? (有点像Java的GNU编译器如何将Java编译成 native (humongous)可执行文件,其中包含真机代码中的所有内容。)
如果是这样,我该如何做呢?
(具体来说,py2exe
不执行我想要的操作 - 它包含单独的 ZIP文件中的库,并且它包含解释器作为分开 DLL。)
要强调,我 不 要求提供“自解压存档”,“可执行打包程序”或通过捆绑“欺骗”其他方式exe
中的文件 - 我正在寻找能够真正将Python转换为本机可执行文件的东西,就像GCJ为Java所做的那样。
仅当上述不可能时:
是否有可能至少从包含与所有库依赖项捆绑在一起的解释器的Python代码生成单个可执行文件,这样生成的可执行文件不需要在运行之前自行提取到目标磁盘上?
在这种情况下,放宽了“编译”要求:代码是否实际编译成机器代码无关紧要(它可以简单地作为文本资源嵌入到目标可执行文件中),但结果必须如此是一个单个 exe
文件[并且没有别的]可以独立运行,特别是没有需要在运行之前将任何东西解压缩/安装到目标磁盘上。
答案 0 :(得分:7)
Shed Skin可以将Python编译为C ++,但只能将其编译为受限制的子集。 Python的某些方面很难编译为本机代码。
答案 1 :(得分:1)
简短的回答是否定的,这几乎适用于任何语言:即使只是Windows系统DLL,您编写的任何程序都依赖于某些外部库。
如果您编写了一个C程序并使用Microsoft的编译器编译它,您仍然需要安装C运行时库。它们已经存在于大多数系统中,但不能保证。同样,即使您设法编译静态链接到其库的C Python解释器,您仍然必须从某个地方获取C运行时。
我怀疑你真正在问的是你是否可以编译成一个单独的.exe,它只依赖于你已经安装合理期望的库。所有这一切都取决于你愿意考虑什么基础系统的一部分?您能否假设安装了.Net framework 4或Silverlight?如果是这样,你可能想看看IronPython。
同样pypy可以使用Visual Studio工具链或MinGW构建,但我很确定在这两种情况下你仍然需要在运行时使用一些外部库。