64位Windows上的Python 2.7的NumPy

3

我一直在尝试在Windows 64位上获取Python 2.7的NumPy,但是所有人都提到的页面http://www.lfd.uci.edu/~gohlke/pythonlibs/在我的所有设备上都无法打开。

是否有其他地方可以找到它?


我可以访问那个页面并下载numpy。你无法访问那个页面吗?www.numpy.org出了什么问题? - Fredrik Pihl
@Fredrik - 目前,Christoph Gohlke的版本是唯一一个提供二进制64位numpy安装程序的来源。 www.numpy.org由于各种原因没有提供官方的64位Windows二进制文件。(目前在邮件列表中正在进行这个话题的讨论,不管怎样都很有价值。http://mail.scipy.org/pipermail/numpy-discussion/2013-February/065339.html) 除此之外,我也可以访问OP链接的页面,所以我不确定问题出在哪里... - Joe Kington
2个回答

5
我建议使用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构建的软件包。

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软件包,并且能够成功运行测试。

你会分享修改后的文件吗?如果能帮我解决问题,我会给你奖励的。 - peter karasev
抱歉,我想我已经没有它了。而且,我是在工作中完成的,我认为分享它会有困难。你真的需要自己编译吗?下载预编译版本(32/64位)仍然更容易。 - JCash

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