我正在构建一个Python应用程序,不想强迫我的客户端安装Python和模块。
那么,是否有一种方法可以将Python脚本编译为独立的可执行文件?
我正在构建一个Python应用程序,不想强迫我的客户端安装Python和模块。
那么,是否有一种方法可以将Python脚本编译为独立的可执行文件?
当前回答
你可能想调查一下努伊特卡。它接受Python源代码并将其转换为c++ API调用。然后将其编译成可执行二进制文件(Linux上的ELF)。它已经存在了几年,并且支持广泛的Python版本。
如果使用它,您还可能获得性能改进。推荐使用。
其他回答
你可能想调查一下努伊特卡。它接受Python源代码并将其转换为c++ API调用。然后将其编译成可执行二进制文件(Linux上的ELF)。它已经存在了几年,并且支持广泛的Python版本。
如果使用它,您还可能获得性能改进。推荐使用。
对于Python 3.2脚本,唯一的选择是cx_Freeze。从资源中构建;否则行不通。
对于Python 2。我建议使用PyInstaller,因为它可以将Python程序打包到一个可执行文件中,而不像cx_Freeze那样输出库。
由于它似乎没有出现在当前的答案列表中,我认为值得一提的是,标准库包含一个zipapp模块,可用于此目的。它的基本用途是将一堆Python文件压缩成一个扩展名为.pyz的zip文件,可以直接作为Python myapp执行。Pyz,但是你也可以从requirements.txt文件中创建一个自包含的包:
$ python -m pip install -r requirements.txt --target myapp
$ python -m zipapp -p "interpreter" myapp
其中解释器可以是/usr/bin/env python(请参阅指定解释器)。
通常,生成的.pyz / .pyzw文件应该是可执行的,在Unix中,因为它被这样标记,在Windows中,因为Python安装通常会注册这些扩展名。然而,只要用户在路径中有python3.dll,就可以相对容易地创建一个Windows可执行文件。
如果您不想要求最终用户安装Python,您可以将应用程序与可嵌入的Python包一起分发。
不完全是Python代码的打包,但现在也有来自谷歌的Grumpy,它将代码编译到Go。
它不支持Python C API,因此可能不适用于所有项目。
py2exe会生成你想要的EXE文件,但是你需要在你要使用新的EXE文件的机器上有相同版本的MSVCR90.dll。
有关更多信息,请参阅教程。