在64位Windows上安装NumPy和SciPy(使用Pip)

31 投票
14 回答
133045 浏览
提问于 2025-04-30 15:53

我发现,在64位的Windows上,无法通过安装程序安装NumPy和SciPy,这只能在32位上安装。因为我需要的内存超过32位版本能提供的,所以我需要所有东西的64位版本。

我尝试通过Pip来安装所有东西,大部分都成功了。但是当我安装SciPy时,它提示我缺少Fortran编译器。于是我通过MinGW/MSYS安装了Fortran。但是安装完Fortran后,不能直接安装SciPy,必须先重新安装NumPy。我试了这个,但现在通过Pipeasy_install都不行了,两个都出现了错误:

  • 有很多关于LNK2019LNK1120的错误。
  • 我在C方面遇到了很多错误,比如C2065C2054C2085C2143等。我觉得它们是相关的。
  • 找不到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 个回答

3

从这个链接 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运行起来了。

4

最好的解决办法是从 https://www.microsoft.com/en-us/download/details.aspx?id=44266 下载并安装 VCforPython2.7。

然后试着运行 pip install numpy。

11

使用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
38

你可以通过安装它们的轮子文件来安装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
32

更新:现在Numpy项目提供了预编译的包,格式是wheel(这是一种可以让代码以二进制形式打包的格式),所以安装起来和其他包一样简单。


Numpy(还有一些其他包,比如Scipy、Pandas等)里面包含了很多C、Cython和Fortran的代码,这些代码在使用之前需要正确编译。这也是为什么这些Python包在进行线性代数运算时速度很快的原因。

如果你想在Windows上获取预编译的包,可以看看Gohlke的非官方Windows二进制文件,或者使用像Winpython(简单易用)或Anaconda(稍微复杂一点)这样的发行版,它们提供了一个预配置的环境,里面有很多科学计算用的Python包。

撰写回答