NumPy for Python 2.7 on 64 bit Windows



我一直在尝试在Windows 64位上获得Python 2.7的NumPy,但页面http://www.lfd.uci.edu/每个人都提到的~gohlke/pythonlibs/没有在我的任何设备上打开。

还有别的地方我可以找到吗?

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

WinPython创建者的这篇博客文章解释了为什么通常很难找到64位Windows NumPy:

根据经验丰富的开发人员的说法,目前还没有适合Windows 64位平台的开源(免费)Fortran编译器。因此,在这个平台上只使用免费的开源工具是不可能构建NumPy或SciPy的。这就是为什么这两个库没有官方的Windows 64位二进制文件。市面上唯一可用的现成安装程序是由Christoph Gohlke(使用英特尔Fortran编译器,又称"ifort")准备的,这些显然是非官方的二进制文件。此外,Christoph为NumPy构建了两个不同的安装程序:一个未优化,另一个使用"英特尔数学内核库"(MKL)进行了优化,从而提供了更好的性能。Gohlke的SciPy 64位二进制软件包(唯一在线免费提供的软件包)需要NumPy MKL。根据Christoph Gohlke的说法,问题是MKL许可证不允许我(或其他任何人)重新分发这些二进制文件,除非我购买了这样的许可证。我还不清楚最终用户是否也需要这个许可证。希望不会。让我们假设一下。此外,在仔细阅读"英特尔MKL许可证"条款后,我确信我可以重新分发构建的基于MKL的NumPy,因为它只是运行时的重新分发。因此,我想我将购买"英特尔Fortran编译器"许可证(包括MKL),以便在不久的将来能够重建NumPy和SciPy,但在此期间,我只会重新分发Christoph Gohlke构建的软件包。

我不知道还能在哪里找到它,但我想说的是,如果你有numpy源代码和MSVC编译器,你自己构建其实并没有那么困难。

Numpy使用python-distutils包构建,因此处理清单文件。如果您正在使用VC9,那么您可能可以直接使用它。

我今天使用VC10编译器完成了这项工作,因此不得不更改distutils包(msvc9compiler.py)以不处理任何清单。我只是简单地把那些台词注释掉了。然后,在构建包之前,我将env-var设置为指向我的实际编译器:

set VS90COMNTOOLS=%VS100COMNTOOLS%
c:python27_64python.exe setup.py build

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

Numpy抱怨了很多关于ATLAS和BLAS之类的东西,但最终,你会得到一个编译后的Numpy,它将成功运行测试。

最新更新