如何将Python程序打包成EXE文件?
我用过几个模块来把Python程序变成EXE文件,但我不太确定自己是不是做对了。
我应该怎么做呢?为什么要这样做?请根据你自己的经验来回答,如果有需要的话可以提供一些参考资料。
7 个回答
这段内容提到了一些关于“冻结二进制文件”的概念,但它和真正的编译器输出不太一样。它是通过一个叫做虚拟机(PVM)来运行字节码的。运行方式和编译后的程序一样,只是因为程序和虚拟机一起被编译,所以文件会更大。py2exe可以把一些独立的程序“冻结”,这些程序使用了像tkinter、PMW、wxPython和PyGTK这样的图形界面库;还包括使用pygame这个游戏编程工具包的程序;以及win32com客户端程序等等。 Stackless Python是CPython的一种变体,它不在C语言的调用栈上保存状态。这使得Python更容易移植到小型栈架构上,提供了高效的多进程选项,并且支持一些新颖的编程结构,比如协程。还有一些正在研究未来发展的项目:Pyrex在开发Cython系统,Parrot项目,PyPy则在努力完全替代PVM,当然,Python的创始人也在和谷歌合作,希望让Python的运行速度比C快5倍,这个项目叫做Unladen Swallow。总的来说,py2exe是最简单的选择,而Cython在效率上更好,直到这些项目改善了独立文件的Python虚拟机(PVM)。
我觉得这个演讲非常有帮助。
我如何在Windows上分发Python应用程序 - py2exe和InnoSetup
来自这个网站的内容:
对于Python代码,有很多种发布方式。我会分享我在Windows上使用py2exe和InnoSetup打包命令行工具和服务的经验。我会演示一个简单的构建脚本,它可以一步创建Windows可执行文件和InnoSetup安装程序。此外,我还会讲解使用py2exe时常见的错误,以及一些解决这些问题的小提示。这是一个简短的演讲,所以会有一个后续的开放讨论环节,大家可以分享经验,互相帮助解决分发问题。
Auto PY to EXE 是一个工具,可以把 .py 文件转换成 .exe 文件。它有一个简单的图形界面,使用了 Eel 和 PyInstaller 这两个 Python 库。
py2exe 可能是你想要的工具,但它只在 Windows 系统上能用。
PyInstaller 可以在 Windows 和 Linux 系统上使用。
Py2app 则适用于 Mac 系统。