【问题标题】:How to bundle a Python application including dependencies?如何捆绑包含依赖项的 Python 应用程序?
【发布时间】:2010-09-11 12:38:25
【问题描述】:

我需要将我的 Python 应用程序、它的依赖项和 Python 打包到一个 MSI 安装程序中。最终结果应该是:

  • Python 安装在标准位置
  • 包及其依赖项安装在单独的目录中(可能是站点包)
  • 安装目录应包含未压缩的 Python,并且不需要独立的可执行文件

【问题讨论】:

标签: python tkinter packaging


【解决方案1】:

这个关于 how to make a python into an executable 的问题有点重复。

归结为:

py2exe 在 Windows 上,Freeze 在 Linux 上,以及 py2app 在 Mac 上。

【讨论】:

  • 不是真正的骗局。这是特定于包装的。另一个家伙还没有头绪。但是很酷,这是关于 py2exe 的信息
【解决方案2】:

我使用PyInstaller(svn 版本)来创建我的程序的独立版本,其中包括 Python 和所有依赖项。让它正常工作并包含所有内容需要一些小技巧(py2exe 和其他类似程序也是如此,请参阅this question),但它运行得非常好。

然后您需要创建一个安装程序。 NSIS 很好用而且是免费的,但它创建的是 .exe 文件而不是 .msi。如果 .msi 不是必需的,我强烈推荐它。否则,请查看this 问题的答案以了解其他选项。

【讨论】:

    【解决方案3】:

    我的公司使用免费的 InnoSetup 工具。这是一个中等复杂的程序,对于构建 Windows 安装程序具有很大的灵活性。但是,我相信它会创建 .exe 而不是 .msi 文件。 InnoSetup 不是特定于 python 的,但我们为我们的一个产品创建了一个安装程序,它将 python 以及依赖项安装到用户在安装时指定的位置。

    【讨论】:

      【解决方案4】:

      我在使用 pyinstaller 的依赖项和自定义文件夹结构方面获得了更好的结果,它可以让您找到并指定隐藏的导入和挂钩,以用于更大的依赖项,如 numpy 和 scipy。不过,它也是一个 PITA。

      【讨论】:

      • 八年后,PyInstaller 仍然是一个不错的选择,但仍然是一个巨大的 PITA。
      【解决方案5】:

      py2exe 将生成带有 python 的 windows 可执行文件。

      【讨论】:

        【解决方案6】:

        py2exe 是最好的方法。使用起来有点像 PITA,但最终效果非常好。

        【讨论】:

          【解决方案7】:

          好的,我以前使用过 py2exe,它运行良好,除了一件事......它只适用于可执行的 Windows 机器。然后我了解了 Jython,它将 python 脚本转换为 .Jar 文件。如您所知,它可以从任何安装了 Java(“到您的最新运行版本”)的机器上执行。这很棒,因为 unix、windows 和 ios(大多数时候)都运行 java。这意味着它可以从以下所有机器执行。只要他们运行Java。无需“py2mac + py2exe + freeze”即可在所有操作系统上运行。只是 Jython

          有关它的工作原理和使用方法的更多信息,请单击此处。
          http://www.jython.org/

          【讨论】:

          • 请在您的解决方案中提供更多见解。解释术语,必要时附上外部链接。
          • 很抱歉,它是一种简单的形式,例如 py2exe,可以将您的 python 项目转换为可执行的 jar 文件。只需快速 GoogleJjython,就这么简单。
          猜你喜欢
          • 2019-02-14
          • 2015-10-04
          • 2019-04-16
          • 2018-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-12
          相关资源
          最近更新 更多