为Python及其一组依赖项创建Windows安装程序

16

我需要为Windows创建一个安装程序,能够安装特定版本的Python解释器(2.7)以及一组依赖项,例如ipython,numpy,pandas等。

基本上,这与Active State的Active Python发行版所做的事情相同:一个包含解释器+依赖项的单一捆绑软件包。

作为一名非Windows用户,我不确定如何开始,除了可能研究一下NSIS(这个有帮助吗?)。


1
据我所知,这个想法是使用py2execx_freeze制作可执行文件,并使用NSIS或Inno Setup制作安装程序。但我从未尝试过。 - KurzedMetal
1
py2exe不是旨在将特定的Python应用程序转换为exe文件以“冻结”吗? 这里的目标是创建一个捆绑安装程序,包括完整的Python解释器+一组第三方模块。 - Giampaolo Rodolà
这就是“freeze”的作用,将Python可执行文件/动态链接库和所使用的模块打包成一个.exe文件。唯一的区别是你不需要在系统范围内安装Python,也不会破坏其他东西或失败。 - KurzedMetal
3个回答

8

我建议使用我用于构建Python发布版的打包工具,它位于Tools/msi/msi.py中。在Python源码(或安装文件)之上解压额外的依赖项,然后调整msi.py以选择要打包的所有附加文件。您应该调整显示字符串以表明这实际上是一个单独的Python发行版。


5
对于Windows平台,有pynsist可用。它内部使用NSIS并捆绑了Python,因此您不必自己安装。它还附带了有用的示例
免责声明:我还没有尝试过pynsist,但很快就会尝试。

2
如果你想打包一个预先确定版本的 Python 和一些依赖项,我建议使用 NSIS 和 AutoIt。
NSIS 可以用于嵌入其他安装程序,但在特定情况下,Python 模块的某些安装程序无法在无人值守模式下使用。为了解决这个问题,可以使用 AutoIt 来模拟按键操作。
有关在 NSIS 中嵌入其他安装程序的更多信息,请参见:http://nsis.sourceforge.net/Embedding_other_installers AutoIT 网站:http://www.autoitscript.com/site/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接