在64位Windows上安装NumPy和SciPy(使用Pip)
我发现,在64位的Windows上,无法通过安装程序安装NumPy和SciPy,这只能在32位上安装。因为我需要的内存超过32位版本能提供的,所以我需要所有东西的64位版本。
我尝试通过Pip
来安装所有东西,大部分都成功了。但是当我安装SciPy时,它提示我缺少Fortran编译器。于是我通过MinGW/MSYS安装了Fortran。但是安装完Fortran后,不能直接安装SciPy,必须先重新安装NumPy。我试了这个,但现在通过Pip
和easy_install
都不行了,两个都出现了错误:
- 有很多关于
LNK2019
和LNK1120
的错误。 - 我在
C
方面遇到了很多错误,比如C2065
、C2054
、C2085
、C2143
等。我觉得它们是相关的。 - 找不到Fortran链接器,但我不知道怎么安装这个,找不到相关的信息。
- 还有很多错误已经超出了我cmd窗口的可见部分……
致命错误是关于
LNK1120
的:build\lib.win-amd64-2.7\numpy\linalg\lapack_lite.pyd : fatal error LNK1120: 7 unresolved externals error: Setup script exited with error: Command "C:\Users\me\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\BLAS /LIBPATH:C:\Python27\libs /LIBPATH:C:\Python27\PCbuild\amd64 /LIBPATH:build\temp.win-amd64-2.7 lapack.lib blas.lib /EXPORT:initlapack_lite build\temp.win-amd64-2.7\Release\numpy\linalg\lapack_litemodule.obj /OUT:build\lib.win-amd64-2.7\numpy\linalg\lapack_lite.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\numpy\linalg\lapack_lite.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\numpy\linalg\lapack_lite.pyd.manifest" failed with exit status 1120
在64位的Windows机器上,安装64位版本的NumPy和SciPy的正确方法是什么?我是不是漏掉了什么?我需要在某个地方指定什么吗?我找不到关于Windows的这些问题的信息,只有Linux或Mac OS X的,但那些对我没有帮助,因为我不能使用它们的命令。
14 个回答
从这个链接 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载适合64位系统的二进制文件,然后按照下面的顺序直接用 pip
安装:
pip install numpy-1.12.0+mkl-cp36-cp36m-win64.whl
pip install scipy-0.18.1-cp36-cp36m-win64.whl
pip install matplotlib-2.0.0-cp36-cp36m-win64.whl
注意,你必须在下载完 .whl
文件后,把命令提示符放在这些文件所在的文件夹里,并且要以管理员身份运行,这样我在Windows 10 64位上就成功让Python运行起来了。
最好的解决办法是从 https://www.microsoft.com/en-us/download/details.aspx?id=44266 下载并安装 VCforPython2.7。
然后试着运行 pip install numpy。
使用pip安装
如果你在Windows上想要安装numpy和scipy这两个库,可以通过使用一个合适的链接,从Gohlke的非官方Windows二进制文件(这是sebix提到的)来一步搞定。同时,你需要以管理员身份运行Windows命令提示符。比如,在Python 3.5中,你可以简单地使用类似下面的命令:
# numpy-1.9.3+mkl for Python 3.5 on Win AMD64
pip3.5 install http://www.lfd.uci.edu/~gohlke/pythonlibs/xmshzit7/numpy-1.9.3+mkl-cp35-none-win_amd64.whl
# scipy-0.16.1 for Python 3.5 on Win AMD64
pip3.5 install http://www.lfd.uci.edu/~gohlke/pythonlibs/xmshzit7/scipy-0.16.1-cp35-none-win_amd64.whl
你可以通过安装它们的轮子文件来安装scipy和numpy。
首先,如果你的电脑上还没有安装wheel这个包,就先安装它...
pip install wheel
然后从这个链接选择你需要的包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
举个例子:如果你在Windows上运行的是32位的python3.5
,那么就选择scipy-0.18.1-cp35-cp35m-win_amd64.whl
,这样它会自动下载。
接下来,打开命令行,把目录切换到下载文件夹,然后用pip
来安装刚才下载的轮子文件。
示例:
cd C:\Users\[user]\Downloads
pip install scipy-0.18.1-cp35-cp35m-win_amd64.whl
更新:现在Numpy项目提供了预编译的包,格式是wheel(这是一种可以让代码以二进制形式打包的格式),所以安装起来和其他包一样简单。
Numpy(还有一些其他包,比如Scipy、Pandas等)里面包含了很多C、Cython和Fortran的代码,这些代码在使用之前需要正确编译。这也是为什么这些Python包在进行线性代数运算时速度很快的原因。
如果你想在Windows上获取预编译的包,可以看看Gohlke的非官方Windows二进制文件,或者使用像Winpython(简单易用)或Anaconda(稍微复杂一点)这样的发行版,它们提供了一个预配置的环境,里面有很多科学计算用的Python包。