如何将包含依赖项的Python应用程序打包为Windows安装程序?

61 投票
7 回答
65711 浏览
提问于 2025-04-11 09:16

我需要把我的Python应用程序、它所依赖的库,还有Python本身打包成一个单独的MSI安装程序,方便分发给用户。最终的结果应该是:

  • Python安装在标准位置
  • 这个包和它的依赖库安装在一个单独的文件夹里(可能是site-packages)
  • 安装目录应该包含未压缩的Python,不需要单独的可执行文件

7 个回答

6

我们公司使用一个免费的工具叫InnoSetup。这个程序有点复杂,但它非常灵活,可以用来制作Windows的安装程序。我记得它生成的是.exe文件,而不是.msi文件。InnoSetup并不是专门为Python设计的,但我们为我们的一个产品制作了一个安装程序,这个安装程序可以在用户安装时,将Python和相关的依赖项安装到用户指定的位置。

18

我使用 PyInstaller(这个是svn版本)来制作一个独立的程序版本,这个版本里包含了Python和所有需要的依赖库。要让它正常工作并包含所有东西,确实需要花点时间调整一下(就像py2exe和其他类似的程序一样,具体可以看看 这个问题),但一旦搞定,它的效果非常好。

接下来,你需要创建一个安装程序。 NSIS 在这方面表现得很好,而且是免费的,不过它生成的是.exe文件,而不是.msi文件。如果你不需要.msi文件,我强烈推荐使用它。否则,可以查看 这个问题的回答,了解其他的选择。

32

这个问题有点像之前那个关于 如何把Python程序变成可执行文件 的问题。

简单来说就是:

在Windows上可以用 py2exe,在Linux上用 Freeze,而在Mac上则可以使用 py2app

撰写回答