如何使用 InstallShield 在 Windows 上最好地安装 Python + 模块
Posted
技术标签:
【中文标题】如何使用 InstallShield 在 Windows 上最好地安装 Python + 模块【英文标题】:How best to install Python + modules on Windows using InstallShield 【发布时间】:2017-09-05 23:51:52 【问题描述】:我们有一个现有的 InstallShield 安装程序,它会安装以下内容:
-
我们的产品
Python 2.7.13 通过官方 Windows exe 安装程序
3 个 python 模块(pywin32、psycopg 和 setuptools)通过 exe 安装程序
我们生产的 2 个鸡蛋模块
Python 是静默安装的,但是 3 个模块安装程序会打开他们自己的安装程序窗口,这些窗口会阻止我们的安装,看起来非常不专业,并且需要用户单击它们。似乎没有我们可以传递的参数来强制它们静默运行。
我们的安装人员已经 7 岁了。我认为 Python 模块在 Windows 上安装方式的进步已经使基于 exe 的模块安装程序完全过时,但我似乎无法找到关于推荐的“现代”安装方法的明确答案。鉴于以下限制,我们可以做些什么来使安装程序运行完成而无需单击模块安装程序?
以下条件适用:
-
我们必须继续使用 InstallShield 作为安装引擎。
在安装过程中我们不会有 Internet 连接。
安装适用于计算机上的所有用户。
【问题讨论】:
【参考方案1】:我这里从来没有收到过答复,所以我独自前行。
Windows Python 2.7.13 安装默认包括 pip 和 setuptools。这一事实使我能够从 .exe 模块安装程序切换到 Wheel (.whl) 安装程序。由于我们没有 Internet 连接,我无法使用未满足依赖项的 whl,但幸运的是,我需要的模块都不属于该类别。一旦安装了 Python 本身,每个 pip 安装都会直接从 InstallShield 代码通过 LaunchAppAndWait() 触发。
唯一的“问题”是 pywin32 模块有一个安装后脚本,必须在 pip 安装后运行。这是由 exe 安装程序自动处理的,所以我什至不知道它,除非 whl 安装最初出现问题。
【讨论】:
另一种选择是使用捆绑工具。有一些工具可以将你的 python 应用程序捆绑到 .exe 中。以上是关于如何使用 InstallShield 在 Windows 上最好地安装 Python + 模块的主要内容,如果未能解决你的问题,请参考以下文章
如何让 InstallShield LE 自动卸载现有安装?
Installshield:如何更新已经运行的 Windows 服务