64位Windows上的Python 2.7的NumPy

3 投票
2 回答
23409 浏览
提问于 2025-04-17 15:10

我一直在尝试在64位的Windows上安装适用于Python 2.7的NumPy,但大家提到的那个网页 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 在我的任何设备上都打不开。

那有没有其他地方可以找到它呢?

2 个回答

1

我不知道还有哪里可以找到这个,但我想说其实自己动手做并不难,只要你有numpy的源代码和一个MSVC编译器。

Numpy是通过python的distutils包来构建的,所以它会处理一些清单文件。如果你使用的是VC9编译器,那你可以直接开始了。

今天我用的是VC10编译器,因此我需要修改我的distutils包(msvc9compiler.py),让它不去处理任何清单文件。我只是把那些相关的代码注释掉了。

然后在我构建这个包之前,我设置了一个环境变量,指向我实际使用的编译器:

set VS90COMNTOOLS=%VS100COMNTOOLS%
c:\python27_64\python.exe setup.py build

构建完成后,我在构建文件夹里找到了numpy包。

Numpy在处理ATLAS和BLAS等东西时会抱怨很多,但最终你会得到一个可以成功运行测试的编译好的numpy。

5

我建议你使用WinPython,这是一个适用于Windows的Python 2.7版本,有32位和64位两个版本。

这篇博客是WinPython的创建者写的,里面解释了为什么在64位Windows上找到NumPy会比较困难:

根据一些有经验的开发者说,Windows 64位平台上没有好的开源(免费的)Fortran编译器。因此,使用免费和开源的工具在这个平台上构建NumPy或SciPy是做不到的。这就是为什么这两个库没有官方的64位Windows版本的原因。现在唯一可以用的安装包是由Christoph Gohlke准备的(使用的是Intel Fortran编译器,也就是'ifort'),这些显然不是官方的版本。此外,Christoph为NumPy制作了两个不同的安装包:一个是未优化的,另一个是使用Intel数学核心库(MKL)优化过的,这样性能会更好。而Gohlke的SciPy 64位安装包(网上唯一可以免费获取的)需要NumPy MKL。问题是,Christoph Gohlke表示,MKL的许可证不允许我(或其他人)重新分发这些安装包,除非我购买了这样的许可证。我还不确定最终用户是否也需要这个许可证。希望不需要。我们就假设不需要。此外,在仔细阅读Intel MKL许可证条款后,我相当确定我可以重新分发基于MKL构建的NumPy,因为这只是运行时的重新分发。所以我想我会购买一个Intel Fortran编译器的许可证(包括MKL),以便在不久的将来能够重新构建NumPy和SciPy,但在此之前,我会先重新分发Christoph Gohlke构建的包。

撰写回答