在Windows中使用批处理文件静默安装numpy.exe

4
我想创建一个批处理文件,帮助多个用户在Windows共享驱动器上安装numpy。基本上,用户不需要输入选项或执行任何操作(就像他们双击numpy可执行安装程序时一样)。
已经有Python安装。用户只需运行批处理文件并将numpy安装到默认的Python\Lib\site-packages位置即可。
我尝试使用以下命令:
numpy-1.6.1-win32-superpack-python2.7.exe /qn
numpy-1.6.1-win32-superpack-python2.7.exe /quiet
numpy-1.6.1-win32-superpack-python2.7.exe /passive

在所有情况下,批处理文件与可执行文件位于同一目录中,并且会弹出一个图形窗口,用户需要一遍又一遍地点击“下一步”。有没有一种方法可以使用所有默认选项运行安装程序而不需要用户交互?
3个回答

2
似乎numpy的安装过程实际上是由两个安装程序组成的。外部安装程序是NSIS,而内部安装程序是Python的distutils安装程序。所有NSIS安装程序都有/s用于静默安装,但是这个NSIS安装程序会调用distutils安装程序。
不幸的是,distutils安装程序似乎没有任何静默标志。我只看到两个明显的选择:
1.自己编译numpy并生成msi安装程序(因此应该能够静默安装)。使用python setup.py bdist_msi。如果您愿意,可以使用bdist_nsi生成NSIS软件包。
2.使用AutoIt之类的工具自动化distutils安装程序。等待disutils窗口出现并发送一系列键盘快捷键以自动执行安装操作。
后者似乎是更实际的解决方案。您还可以尝试让Python开发人员将静默标志添加到distutils安装程序中...

谢谢您提供的解决方案。不过还有一个问题需要澄清:在后一种方法中,我需要从源代码构建numpy,而不能使用可执行安装程序,对吗? - prrao
不过,如果使用AutoIt的方法,您可以使用现有的安装程序。 - Jeff
好的,听起来不错。你认为通过从源代码构建可能有更简单的解决方案吗?我对Windows脚本编写经验不是很丰富,所以如果我能够从命令行创建一组简单的Python调用,那可能会更容易些。 - prrao
1
对于Windows系统,编译可能会遇到很多麻烦。您需要使用与构建Python相同的Visual C编译器。然后,您需要获取NumPy的所有依赖项,例如FORTRAN编译器和一些线性代数优化库。编写一个AutoIt脚本可能会更快(这可能只需要不到50行代码)。在AutoIt完整安装包中,有一个基本的录制器,可以作为脚本的起点。 - Jeff
非常感谢您的帮助!我一定会仔细研究这个。 - prrao

1
如果您有正确的.exe包,则无需从源代码安装此软件。
我从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy下载了最新的numpy .exe文件,并且在下载文件夹中,您只需在控制台中键入以下内容:
easy_install c:\users\YourName\downloads\numpy‑MKL‑1.9.1.win32‑py2.7.exe

谢谢 - 这解决了一个相关的问题,我正在尝试安装 psutil :-) - Jon Cage

0
我用来安装无人值守的方法如下:
%PYTHON_PATH%\Scripts\easy_install c:\temp\numpy-1.9.0.zip

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