Python可执行文件:py2exe或PyInstaller?

tra*_*nte 54 python windows executable

要创建可执行文件(windows),我假设我们应该使用其中一个:Py2exe或PyInstaller.

他们之间有什么区别?

Gag*_*ngh 66

Py2exe和PyInstaller都是包装器,但是我注意到这里的差异很小,

  1. Py2exe与python2.4 +兼容,包括python3.0和3.1,而PyInstaller目前与python 2.7和3.3-3.5兼容
  2. 据我所知,Py2exe不支持签名,而Pyinstaller支持从1.4版本签名
  3. 在PyInstaller中,很容易创建一个exe,默认情况下都会创建一堆exes和dll.
  4. 在py2exe中,它更容易在exe文件中嵌入清单文件,对于在windows vista及更高版本中以管理员模式运行非常有用.
  5. Pyinstaller是模块化的,具有钩子功能,可以在您喜欢的构建中包含文件.我不知道py2exe中的这个功能.

希望这有助于您做出决策.

[更新] - 看起来像PyInstaller一样积极开发(https://github.com/pyinstaller/pyinstaller/)并发布.py2exe仍在使用sourceforge,它的发布周期在pypi上非常随机,2014年之后没有版本,他们的代码也在2017年开发(https://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/ py2exe-3/py2exe /).因此,我建议使用pyinstaller,直到py2exe稳定其发布发布周期,有利于开发人员.

  • 还应该提到py2exe没有被主动维护,最后一个版本(0.6.9)在2008年问世. (17认同)
  • 对于pyInstaller - 他们现在声称最多兼容3.4. (6认同)
  • 对于py2exe:看起来0.6.9是支持python 2的最新版本.支持python 3继续在pypi上(https://pypi.python.org/pypi/py2exe,v0.9.2.2更新2014-10-21),虽然我没有在他们的维基上看到这个...可能是某处. (3认同)
  • py2exe 0.10.1.0 已于 2020 年 11 月 8 日发布。py2exe(适用于 python 3)现已托管在 Github 上:https://github.com/py2exe/py2exe (3认同)
  • 另一个细微的区别:虽然 py2exe 仅支持 Windows 可执行文件,但 pyinstaller 支持为各种平台创建可执行文件。从文档中可以看出:“PyInstaller 针对 Windows、Mac OS X 和 GNU/Linux 进行了测试。但是,它不是交叉编译器:要制作 Windows 应用程序,您需要在 Windows 中运行 PyInstaller;要制作 GNU/Linux 应用程序,您需要运行PyInstaller 已成功用于 AIX、Solaris、FreeBSD 和 OpenBSD,但未作为持续集成测试的一部分针对它们进行测试。” (2认同)

ade*_*nes 6

正在积极开发 py2exe 的一个分支,以支持当前版本的 Python,https://github.com/albertosottile/py2exe,目前版本为 v0.9.3.2,可与 Python 3.7 配合使用。

我已经在一个小项目中使用了它,它按预期工作,生成了一个工作可执行文件。从发布页面下载正确的版本并使用pip.

2020年11月6日更新:

根据 LolPython 的评论,此分支现在重定向到官方存储库,因此请使用它:

https://github.com/py2exe/py2exe