Python 可执行文件: py2exe 还是 PyInstaller?

要创建可执行文件(窗口) ,我假设我们应该使用其中之一: Py2exe 或 PyInstaller。

他们之间有什么区别?

51338 次浏览

Py2exe 和 PyInstaller 都是包装器,但是我注意到几个不同之处,

  1. Py2exe 兼容 python2.4 + ,包括 python3.0和3.1,而 PyInstaller 目前兼容 python2.7和3.3-3.5
  2. 据我所知,Py2exe 不支持签名,而 Pyinstaller 支持1.4版本的签名
  3. 在 PyInstaller 中,创建一个 exe 很容易,默认情况下两者都创建一组 ex & dls。
  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 已经很长时间没有活动了:

稳定版: Python 3/0.9.2.2; 2014年10月21日; Python 2/0.6.9; 2008年11月15日

所以我建议使用安装工... ..。

但是现在安装工也遇到了问题:

帮助维护 PyInstaller: 维护 PyInstaller 是一项巨大的工作。只有用户和公司提供可持续的资金,PyInstaller 开发才能继续。有关如何支持 PyInstaller,请参见资助 PyInstaller。

有一个 py2exe 分支正在被积极开发,以支持 Python 的现有版本 https://github.com/albertosottile/py2exe,目前是 v0.9.3.2,可以与 Python 3.7一起工作。

我在一个小项目中使用过它,它按预期工作,生成了一个可执行文件。从 版本下载正确的版本并与 pip一起安装。

更新2020-11-06:

根据 LolPython 的评论,这个 fork 现在会重定向到官方的 repo,所以改用:

Https://github.com/py2exe/py2exe