如何将包含依赖项的Python应用程序打包为Windows安装程序?
我需要把我的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程序变成可执行文件 的问题。
简单来说就是: