Python 在Windows上安装NumPy

Python 在Windows上安装NumPy,python,numpy,pip,Python,Numpy,Pip,我根本无法在Windows上安装NumPy。我一直在犯这个错误- PS C:\python27> pip install http://sourceforge.net/projects/numpy/file/NumPy/ Collecting http://sourceforge.net/projects/numpy/files/NumPy/ Downloading http://sourceforge.net/projects/numpy/files/NumPy/ (58kB) 100%

我根本无法在Windows上安装NumPy。我一直在犯这个错误-

PS C:\python27> pip install http://sourceforge.net/projects/numpy/file/NumPy/
Collecting http://sourceforge.net/projects/numpy/files/NumPy/
Downloading http://sourceforge.net/projects/numpy/files/NumPy/ (58kB)
100% |################################| 61kB 15kB/s
Cannot unpack file c:\users\toshiba\appdata\local\temp\pip-qev4rz-unpack\NumPy
(downloaded from c:\users\toshiba\appdata\local\temp\pip-omripn-build, content-type: text/html; charset=utf-8); cannot detect archive format
Cannot determine archive format of c:\users\toshiba\appdata\local\temp\pip-omripn-build
我之前有一个Python 64位版本,我不确定NumPy版本是否与64位Python兼容。所以我卸载了它并安装了一个32位Python版本。但我还是犯了同样的错误。尽管我的Python 32位版本运行良好

我尝试了“pip install numpy”,但最后出现了以下错误-

C:\Python27\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'define_macros'

  warnings.warn(msg)

error: Unable to find vcvarsall.bat

----------------------------------------
Command "C:\Python27\python.exe -c "import setuptools,tokenize;__file__='c:\\users\\toshiba\\appdata\\local\\temp\\pip-build-hdhqex\\numpy\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'),__file__, 'exec'))" install --record c:\users\toshiba\appdata\local\temp\pip-x_6llm-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:\users\toshiba\appdata\local\temp\pip-build-hdhqex\numpy
我可能做错了什么?

一些解释 在第一种情况下,我没有检查,但我猜
pip
直接下载与给定URL对应的资源:。服务器返回一个HTML文档,而
pip
需要一个存档文档。所以那是行不通的

然后,基本上有两种安装Python软件包的方法:

  • 来源,就像你当时尝试的那样
  • 来自预编译包
第一种情况下,您使用命令
pip install numpy
进行了尝试,但由于此软件包包含本机代码,因此需要正确安装开发工具(我总是发现在Windows上这样做很麻烦,但我这样做了,这显然是可行的)。您遇到的错误
错误:找不到vcvarsall.bat
意味着您没有安装工具,或者没有正确设置环境

对于第二种情况,您有不同类型的预编译包:

  • 控制盘,您也可以使用
    pip
    安装
  • 安装程序,在Windows上用作标准安装程序
对于这两种情况,您都需要检查二进制文件是否已针对您的Python体系结构(32位或64位)和版本进行了严格编译

简单的解决办法 您可以找到几个适用于
numpy
的控制盘:。要获得正确的体系结构,请检查名称
win32
中的32位和
amd64
中的64位。要获得正确的Python版本,请选中
cpXX
:第一个X是主要版本,第二个X是次要版本,因此,例如
cp27
意味着cpython2.7

示例:
pip安装numpy-1.9.2rc1+mkl-cp27-none-win32.whl

硬解决方案:安装和使用开发工具 免责声明:以下所有解释可能都不太清楚。它们是在不同时刻进行多次调查的结果,但在我的配置中,它们导致了一个有效的解决方案。有些链接可能是无用的,或者是多余的,但这就是我注意到的。所有这些都需要一点清理,可能还需要推广

首先,您需要了解,
distils
——这是一个预安装的包,它在低于
pip
(后者使用)的级别上处理包工作流——将尝试使用一个与您安装的Python机器构建时使用的编译器严格匹配的编译器

Python的官方发行版使用微软Visual C++作为微软Windows软件包。因此,在这种情况下,您需要安装此编译器

如何找到VisualC++的正确版本 Python通过以下命令打印的字符串
Python-c“import sys;print(sys.version)”
(或者在调用交互式shell时)如下所示:

3.4.1(v3.4.1:c0e311e010fc,2014年5月18日,10:45:13)[MSC v.1600 64位(AMD64)]

方括号之间的最后一部分是编译器的标识部分。不幸的是,这并不是很简单,您有通信列表:

    • 三,

在上面我给出的例子中,这意味着微软Visual C++ 2010 64位。 如何安装VisualC++ <>你不能再找到一个独立的Visual C++程序包。因此,您需要安装Windows SDK本身

以下是一些参考链接:

    :Visual C++ 15(VisualStudio 2008)。对应于WinSDK 7 :Visual C++ 16(VisualStudio 2010)。对应于WinSDK 7.1
故障排除

您可能在安装SDK时出错:

DDSet_错误:修补程序挂钩:缺少必需的属性“ProductFamily”:安装程序无法继续。
DDSet_警告:调用“getDLLName”时安装程序失败。系统错误:当文件已经存在时,无法创建该文件。

已经在几个问题中报告了这些问题:

作为解决方案,您可以检查以下链接:

<> >删除所有冲突(理解:SDK安装程序试图安装的那些)VisualC++重新分发版本

使用开发工具 通常,您应该运行
vsvarsall.bat
(位于Visual Studio安装路径的
VC
文件夹中-示例:
C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat
)设置适当的环境变量,以便在尝试编译包时,
distutils
的执行不会失败

此批处理脚本接受一个参数,该参数应设置所需的体系结构。然而,我发现在SDK的免费版本中,在尝试其中几个参数时,缺少了一些额外的脚本


如果您是为32位体系结构编译,只需调用
vsvarsall.bat
就可以了。如果需要编译64位,可以直接调用位于SDK安装路径下的
SetEnv.cmd
,例如:
“C:\Program Files\Microsoft SDK\Windows\v7.1\Bin\SetEnv.cmd”/x64

,在Windows上,
pip
非常适合安装不需要编译的软件包。否则,认真地说,省去构建和维护软件包的麻烦,并利用他人为您所做的工作。我建议使用以下任一Python发行版:

<
>>> import numpy
>>> import scipy
>>> import sklearn
>>> numpy.version.version
'1.13.1'
>>> scipy.version.version
'0.19.1'
>>>