我一直试图在Windows 64位上获得NumPy for Python 2.7,但是每个人提到的页面http://www.lfd.uci.edu/~gohlke/pythonlibs/都没有在我的任何设备上打开。
我可以在其他地方找到它吗?
答案 0 :(得分:5)
我建议WinPython,一个适用于Windows的Python 2.7发行版,包含32位和64位版本。
WinPython创建者的This blog post解释了为什么通常很难找到64位Windows NumPy:
根据经验丰富的开发人员的说法,Windows 64bit平台没有像样的开源(免费)Fortran编译器。因此,仅使用免费和开源工具在此平台上构建NumPy或SciPy是不可能的。这就是为什么这两个库没有正式的Windows 64bit二进制文件。唯一可以随时使用的安装程序由Christoph Gohlke编写(使用英特尔Fortran编译器,a.k.a。'ifort'),这些显然是非官方的二进制文件。此外,Christoph为NumPy构建了两个不同的安装程序:一个未经优化,另一个使用英特尔数学核心库(MKL)进行优化,因此可提供更好的性能。 Gohlke的SciPy 64位二进制包(唯一可在线免费提供)需要NumPy MKL。问题是,根据Christoph Gohlke的说法,MKL许可证不允许我(或其他任何人)重新发布这些二进制文件,除非我已经购买了这样的许可证。我仍然不清楚最终用户是否也需要此许可证。希望没有。让我们假设一下。此外,在仔细阅读英特尔MKL许可条款后,我非常确定我可以重新分发基于MKL的NumPy,因为它只是运行时重新分配。因此,我认为我将购买英特尔Fortran编译器许可证(包括MKL),以便能够在不久的将来重建NumPy和SciPy,但与此同时,我将重新分发由Christoph Gohlke构建的软件包。
答案 1 :(得分:1)
我不知道在哪里可以找到它,但我想提一下,如果您拥有numpy源代码和MSVC编译器,那么构建自己实际上并不困难。
Numpy使用python distutils包构建,因此处理清单文件。如果您使用的是VC9,那么您可能会继续前进。
我今天使用VC10编译器做了这个,因此必须改变我的distutils包(msvc9compiler.py)以不处理任何清单。我只是评论出这些线条。 然后在构建包之前,我将env var设置为指向我的实际编译器:
set VS90COMNTOOLS=%VS100COMNTOOLS%
c:\python27_64\python.exe setup.py build
在构建之后,我在build文件夹中找到了numpy包。
Numpy抱怨很多关于ATLAS和BLAS的东西,但最后,你会得到一个编译好的numpy,它将成功运行测试。