如何将Python程序制作成EXE文件?

117

我使用了几个模块来生成Python的EXE文件,但我不确定是否做得正确。

我应该怎么做呢?为什么要这样做?请根据个人经验回答,并在必要时提供参考资料。


请看:可执行的Python应用程序 - lubos hasko
请参考这个类似的问题 - Don Kirkby
同时,https://dev59.com/PG035IYBdhLWcg3wYO51 - Mohammad
1
为什么这个问题被关闭了,因为在此之后提出的问题中已经有了答案? - Have a nice day
7个回答

98

Auto PY to EXE是一个使用Python中的Eel和PyInstaller构建的简单图形界面,用于将.py文件转换为.exe文件的转换器。


py2exe可能是您需要的工具,但它只能在Windows上运行。
PyInstaller适用于Windows和Linux。
Py2app适用于Mac。


5
我认为cx_Freeze http://cx-freeze.sourceforge.net/cx_Freeze.html 是一个更好的选择(跨平台)。 - Fabio Zadrozny
Platypus(仅限Mac)也非常适合使用Python脚本制作应用程序。 - svth
4
PyInstaller非常完美,极其简单快捷。 Py2exe无法在Python 3.5上工作,并且无法将所有模块打包进.exe文件中。 - Ryan Pergent
1
看起来 PyInstaller 还不支持 Python 3.6。 - Yster
并且py2exe不支持3.2版本,它要求使用2.7版本。 - tiwarinitin94

10

我觉得这个演示文稿非常有帮助。

如何在Windows上分发Python 应用程序 - py2exe 和InnoSetup

来自该网站的介绍:

针对Python代码,有许多部署选项。我将分享在Windows上为命令行工具和服务使用py2exe和InnoSetup打包的实践。我将演示一个简单的构建脚本,它可以一步创建Windows二进制文件和InnoSetup安装程序。此外,我还将讨论使用py2exe时出现的常见错误以及故障排除提示。这是一个简短的演讲,因此会有一个跟进的Open Space会议,以分享经验并互相帮助解决分发问题。


4
也被称为Frozen Binaries,但不同于真正的编译器输出——它们通过虚拟机(PVM)运行字节码。与编译程序运行方式相同,只是因为程序正在与PVM一起编译,所以体积更大。Py2exe可以冻结使用tkinter、PMW、wxPython和PyGTK GUI库的独立程序;使用pygame游戏编程工具包的程序;win32com客户端程序等等。 Stackless Python系统是标准的CPython实现变体,它不会在C语言调用堆栈上保存状态。这使得Python更容易移植到小堆栈架构中,提供了高效的多处理选项,并促进了诸如协程之类的新型编程结构。其他正在进行未来发展研究的系统:Pyrex正在开发Cython系统,Parrot项目,PyPy正在全面替换PVM,当然,Python的创始人正在与Google合作,以通过Unladen Swallow项目将Python的运行速度提高5倍以上。简而言之,py2exe是最简单的选择,而Cython则是目前更有效的选择,直到这些项目改进Python Virtual Machine(PVM)为止。

3
使用 cx_Freeze 将你的 Python 程序制作成可执行文件。

3

免费黑客名单中没有 gui2exe,它可以用来从Python脚本构建独立的Windows可执行文件、Linux应用程序和Mac OS应用程序包和插件。


gui2exe在Windows操作系统中使用wxpython模块工具时会出现一些问题。 - TLSK

3

py2exe:

py2exe是Python Distutils的扩展,将Python脚本转换为可执行的Windows程序,无需安装Python即可运行。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接