【问题标题】:Automate multiple installers自动化多个安装程序
【发布时间】:2013-07-11 13:14:05
【问题描述】:

我写了一个小python脚本,我想和其他用户分享。(我想把它保存为脚本而不是exe,这样用户可以在需要时编辑代码)

我的脚本有几个用于 python 的外部库,这些库不包含在基本 python 中。

但是其他用户没有在他们的 PC 中安装 python 和所需的库。

所以,为了方便起见,我想知道是否有任何方法可以自动化安装 python 和他们需要的外部库的安装过程。

为了让事情更清楚,我的意思是将所有安装程序合并为一个大型安装程序。

供您参考,所有安装程序都是 windows x86 MSI 安装程序,大约有 5 或 6 个。

这可能吗?这样做有什么缺点吗?

编辑: 所有用户都使用 windows XP pro 32 位 蟒蛇2.7

【问题讨论】:

  • 您为什么操作系统制作安装程序?

标签: python automation installation


【解决方案1】:

我建议使用 NSIS。您可以将所有 MSI 安装程序(包括 python)捆绑到一个可执行文件中,并以您想要的任何顺序以“静默模式”安装它们。 NSIS 还有一个很棒的脚本生成器,您可以下载。

另外,您可能对 activepython 感兴趣。它带有 pip 并自动将所有内容添加到您的路径中,因此您可以从批处理脚本中 pip 安装大部分依赖项。

【讨论】:

    【解决方案2】:

    我的意思是将所有安装程序合并为 1 个大型安装程序。

    我不确定,如果你的意思是从几个中做出一个 msi。如果您已经构建了 msis,这可能会解决,但在大多数情况下,分离是有原因的。

    但现在我假设与其他人一样,您想要一个将所有 msi 设置合并为一个的设置,例如带有打包/自解压部分,但可能有一些自己的逻辑。

    这是一种非常常见的设置模式,有人称之为“引导程序”。不幸的是,到目前为止,大多数引导工具的成熟度都无法与 msi 创建工具相提并论,因此我认识的大多数公司都编写了自己的引导程序,其中包含他们想要的对话框和控制逻辑。这可能是一项非常昂贵的工作。

    如果您的要求不高,这可能听起来很简单。只是开始一个接一个的进程。但是无缝进程栏怎么样,卸载(单个或捆绑)怎么样,修复,修改怎么样,如果其中一个失败或需要重新启动,还涉及修复/卸载/修改/更新。以此类推。

    如前所述,将多个设置捆绑到一个中的首要问题之一是关心用户应该看到多少和哪些卸载条目,如果您的引导程序不创建自己的,则合并一个。 如果这对您来说不是问题,那么您就有机会找到一个简单的解决方案。

    我知道至少三种用于引导程序的工具,有些人称之为套件或捆绑包。我只能在这里提及它们:

    WiX 至少有一个叫做“Burn”的东西。 Google for WiX Burn 你会找到它。我还没用过,所以说不清楚。

    InstallShield Premier 并不是大多数人所说的廉价产品,它允许设置相同的“套件”。我不想在这里评论质量。

    在 Windows SDK 中有(曾经?)一种 setup.exe 模板,用于显示如何从程序开始安装 msi。我从来没有真正研究过这个例子来详细说明它。

    【讨论】:

      【解决方案3】:

      我建议将所有文件放入 .sfx.exe 存档并让它们运行它。将所有文件提取到 %temp% 并运行批处理脚本来安装 python.msi 并将库从 %temp% 复制到 python 库目录。如果您想安装 python 2.7.5,请从 http://ninite.com/ 获取“Ninite”安装程序

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        相关资源
        最近更新 更多