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

31

我发现在Windows 64位系统上无法通过安装程序安装NumPy / SciPy,只有32位系统才行。但是因为我需要比32位安装更多的内存,所以我需要所有软件的64位版本。

我尝试通过Pip安装所有软件,大部分都可以正常安装。但是当我尝试安装SciPy时,它报告缺少Fortran编译器。所以我通过MinGW / MSYS安装了Fortran。但是你不能直接安装SciPy,你需要重新安装NumPy。于是我尝试了一下,但是现在无论是通过Pip还是通过easy_install都无法正常工作。两者都会返回以下错误:

  • 出现了很多关于LNK2019LNK1120的错误。
  • 我在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

错误: 安装程序脚本退出错误:命令“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”失败,退出状态为1120


正确的方法安装 64 位版本 NumPy 和 SciPy 在 64 位 Windows 机器上是什么?我有什么遗漏吗?我需要在某个地方指定一些内容吗?我找不到关于这些问题的 Windows 相关信息,只有针对 Linux 或 Mac OS X 的信息,但它们对我没有帮助,因为我不能使用它们的命令。

3
哦,这是一个Python库的链接,提供了NumPy的预编译版本下载。 - Henry Gomersall
谢谢,那个方法可行!如果你直接回答问题而不是发表评论,对你来说会更好! - Renzeee
14个回答

38

您可以使用其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

1
如果有人想知道,你应该使用pip install wheel(而不是wheels)。玩得开心! - Lilian Delaveau
你确定 python 3.5 32位 使用 amd64 吗? - Luke
我不知道为什么,但这些命令在 vscode 终端中一开始无法运行。但是当我尝试在 cmd 中运行时,它可以正常工作。 - Sourav Kannantha B

32

编辑:Numpy 项目现在提供了预编译的轮子格式(二进制包启用编译代码),因此安装与其他包一样简单。


Numpy(以及其他一些包,如Scipy、Pandas等)包括许多需要正确编译的 C、Cython 和 Fortran 代码才能使用。这也是为什么这些 Python 包提供如此快速的线性代数运算的原因。

要获取 Windows 的预编译包,请查看 高尔基非官方 Windows 二进制文件,或使用发行版,如 Winpython(可直接使用)或 Anaconda(更复杂),它们提供了一个预配置的环境,并安装了科学 Python 栈中的许多包。


Numpy现在可以在Windows上安装。更多信息请参见我的答案:https://dev59.com/CV8d5IYBdhLWcg3wlzD6#50953453 - PaulMest

11

使用pip安装

如果您在Windows上使用适当的链接从Gohlke的非官方Windows二进制文件(由sebix提到)下载numpy和scipy wheels,并以管理员身份运行Windows命令提示符,则可以通过一个步骤使用pip进行安装。例如,在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

4

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 已经准备就绪。

我不知道为什么,但这些命令在 vscode 终端中一开始无法运行。但是当我尝试在 cmd 中运行时,它可以正常工作。 - Sourav Kannantha B

2

2

请按照以下步骤操作:

  1. 以管理员身份打开CMD
  2. 输入以下命令:cd..
  3. cd..
  4. cd Program Files\Python38\Scripts
  5. 下载您想要的软件包并将其放入Python38\Scripts文件夹中。
  6. pip install packagename.whl
  7. 完成

您可以将"38"替换为您的Python版本号。


1
如果您使用的是Windows系统,您不需要wheel!您可以通过从此链接[http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy]下载32位包(win32),然后将已下载的包移动到CMD的当前目录,并打开CMD并编写以下代码pip install numpy-1.13.1+mkl-cp36-cp36m-win32.whl,然后对于scipy也执行类似操作。
对于64位,您需要安装mingw-w64,因为它是gcc并且编译numpy和scipy为预编译状态。
目前它在32位上运行良好。所以我选择了那个链接中的numpy+mkl和scipy的win32包。
希望这有用!试试看吧。

1

英特尔在其“英特尔Python发行版”中免费提供预编译的Python模块。这些模块是针对英特尔MKL(数学核心库)进行编译的,因此优化了性能以提高速度。该软件包包括NumPy、SciPy、scikit-learn、pandas、matplotlib、Numba、tbb、pyDAAL、Jupyter等。在这里查找更多信息和下载链接。


1
你可以从这里下载所需的包,并在文件下载目录中使用pip install "Abc.whl"进行安装。

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