61

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

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

7 回答 7

32

关于如何将 python 变成可执行文件的这个问题的一种重复。

它归结为:

Windows上的py2exe 、 Linux 上的Freeze和 Mac 上的py2app

于 2008-09-20T01:41:20.000 回答
18

我使用PyInstaller(svn 版本)来创建我的程序的独立版本,其中包括 Python 和所有依赖项。让它正常工作并包含所有东西需要一点点摆弄(py2exe和其他类似程序也是如此,请参阅this question),但它工作得很好。

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

于 2008-09-20T01:52:20.800 回答
5

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

于 2008-09-22T12:58:57.217 回答
4

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

于 2013-09-11T07:28:07.903 回答
3

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

于 2008-09-20T01:41:47.660 回答
1

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

于 2008-09-20T01:41:36.770 回答
1

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

有关它如何工作以及如何使用它的更多信息,请单击此处。
http://www.jython.org/

于 2015-03-17T22:56:41.583 回答