如何捆绑包括依赖项的Python应用程序?
时间:2020-03-06 14:28:27 来源:igfitidea点击:
我需要将python应用程序,其依赖项和python打包到一个MSI安装程序中。最终结果应该是:
- Python安装在标准位置
- 程序包及其依赖项安装在单独的目录中(可能是站点程序包)
- 安装目录应包含未压缩的python,并且不需要独立的可执行文件
解决方案
关于如何使python成为可执行文件的这个问题的样例。
归结为:
Windows上的py2exe,Linux上的Freeze和
在Mac上为py2app。
py2exe是执行此操作的最佳方法。可以使用PITA,但是最终结果效果很好。
py2exe将使Windows可执行文件与python捆绑在一起。
我使用PyInstaller(svn版本)为程序创建一个独立版本,其中包括Python和所有依赖项。要使它正常工作并包含所有内容,需要一些摆弄(就像py2exe和其他类似程序一样,请参见此问题),但随后它可以很好地工作。
然后,我们需要创建一个安装程序。 NSIS对此非常有用,并且是免费的,但它会创建.exe文件而不是.msi文件。如果不需要.msi,我强烈建议我们使用。否则,请查看该问题的答案以获取其他选择。
我公司使用免费的InnoSetup工具。这是一个中等复杂的程序,具有用于构建Windows安装程序的大量灵活性。我相信它会创建.exe而不是.msi文件。 InnoSetup不是特定于python的,但我们为其中一种产品创建了一个安装程序,该安装程序安装python以及对用户在安装时指定的位置的依赖关系。