有没有办法创建从 pyinstaller --onefile 生成的单个可执行 exe 文件的 MSI 包?

Posted

技术标签:

【中文标题】有没有办法创建从 pyinstaller --onefile 生成的单个可执行 exe 文件的 MSI 包?【英文标题】:Is there any way to create MSI package of single executable exe file that is generated from pyinstaller --onefile? 【发布时间】:2021-01-29 05:45:25 【问题描述】:

我使用 pyinstaller 创建了单个可执行文件,例如 demo.exe 让我们假设我必须创建它的 MSI,我该如何实现 我已经用过 INNO 、AdvanceInstaller、EMCO 以及其中的一些,它们都没有用。

有没有办法使用 cx_freeze 创建 MSI,就像 cx_freeze 将 python 应用程序转换为 MSI。

如何将 .exe 扩展名传递给 cx_freeze,是否有任何变体?

我的目标是创建一个可执行文件的MSI隐藏所有python相关文件软件包已安装在系统上。

【问题讨论】:

【参考方案1】:

我没有 python 经验,但从我读到的只有你从 pyinstaller 获得的 demo.exe 已经是一个安装程序。所以我假设你想要一个 MSI 来环绕它?

如果是这样,以下是如何使用 Advanced Installer 在一个或多个 exe 安装程序上创建 MSI 包装器:

MSI wrapper over one or multiple EXEs

【讨论】:

【参考方案2】:

您可以使用 cx_freeze 直接创建 MSI,类似的帖子可以在 here 找到。 但是如果你已经将你的 python 脚本编译成 EXE,你可以easily create a simple MSI for it。

【讨论】:

以上是关于有没有办法创建从 pyinstaller --onefile 生成的单个可执行 exe 文件的 MSI 包?的主要内容,如果未能解决你的问题,请参考以下文章

Pyinstaller 可执行文件打开并立即关闭

有没有办法让 Pyinstaller GUI 引用与其他 GUI 的共享文件夹,以减少磁盘上的冗余库文件

使用 Pyinstaller 或 Cython 从 Python 模块创建可执行文件

pyinstaller 3.6版本通过pip安装失败的解决办法

pyinstaller打包exe文件闪退的解决办法

pyinstaller:AttributeError:模块“枚举”没有属性“IntFlag”[重复]