在Windows上安装NumPy

时间:2015-02-09 15:56:41

标签: 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% |################################| 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

请告诉我我可能做错了什么。

5 个答案:

答案 0 :(得分:20)

一些解释

在第一种情况下,我没有检查,但我想pip直接下载与给定网址相对应的资源:http://sourceforge.net/projects/numpy/file/NumPy/。服务器返回HTML文档,而pip期望存档一个。这样就行不通了。

然后基本上有两种方法来安装Python包:

  • 来自消息来源,正如您尝试的那样
  • 来自预编译的包

第一种情况,您使用命令pip install numpy尝试了它,但由于此软件包包含本机代码,因此需要正确安装开发工具(我总是发现这是一个痛苦的问题。 Windows,但我做到了,所以它显然是可行的)。您所遇到的错误error: Unable to find vcvarsall.bat表示您未安装工具或正确设置了环境。

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

  • 轮子,您使用pip安装
  • 安装程序,您在Windows上用作标准安装程序

对于这两者,您需要检查二进制文件是否已针对您的Python体系结构(32位或64位)和版本进行了严格编译。

一个简单的解决方案

你可以找到numpy的几个轮子:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy。要获得正确的体系结构,请将名称win32检入32位,将amd64检查为64位。要获得正确的Python版本,请检查cpXX:第一个X是主要版本,第二个X是次要版本,因此例如cp27表示CPython 2.7。

示例:pip install numpy‑1.9.2rc1+mkl‑cp27‑none‑win32.whl

硬解决方案:安装和使用开发工具

免责声明:以下所有解释可能都不太清楚。它们来自不同时刻的几次调查,但在我的配置中,他们找到了一个可行的解决方案。有些链接可能没用,也可能是多余的,但这就是我所说的。所有这些都需要一些清洁,也可能是一般化。

首先,您需要了解disutils - 这是预安装的软件包,它处理的软件包工作流程低于pip(后者使用的软件包) - 将尝试使用一个编译器,它严格匹配用于构建您安装的Python机器的编译器。

Python的官方发行版使用Microsoft Visual C ++ for Microsoft Windows软件包。所以在这种情况下你需要安装这个编译器。

如何找到适当版本的Visual C ++

Python使用此命令python -c "import sys; print(sys.version)"打印的字符串(或当您调用交互式shell时)将如下所示:

3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:45:13) [MSC v.1600 64 bit (AMD64)]

方括号之间的最后一部分是编译器的标识部分。不幸的是,这不是那么简单,你在那里有通信清单:

在我上面给出的示例中,这意味着 Microsoft Visual C ++ 2010 64位

如何安装Visual C ++

您无法再找到适用于现代版本的独立Visual C ++包。因此,您需要安装Windows SDK本身。

以下是一些参考链接:

<强>疑难解答

安装SDK时可能出错: DDSet_Error: Patch Hooks: Missing required property 'ProductFamily': Setup cannot continue. DDSet_Warning: Setup failed while calling 'getDLLName'. System error: Cannot create a file when that file already exists.

已经在几个问题中报告了它们:

作为解决方案,您可以查看以下链接:Windows SDK Fails to Install with Return Code 5100

要解决的问题是删除Visual C ++可再发行组件的所有冲突(理解:SDK安装程序尝试自行安装的那些)。

使用开发工具

通常你应该运行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 SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64

答案 1 :(得分:2)

在Windows上,pip非常适合安装不需要编译的软件包。否则,严肃地说,除了建立和维护包裹的麻烦,并利用别人为你做的工作。我建议使用以下任一Python分发:

Anaconda的下载和安装量要大一些,但默认情况下它包含许多有用的第三方软件包(例如numpy)。 ActivePython包含一个包管理器,允许您轻松安装预编译的二进制文件(安装numpy就像pypm install numpy一样简单)。

使用这些Python发行版的优点是,您可以在几分钟内以一种易于重现的方式运行正常运行的安装。

答案 2 :(得分:1)

最佳解决方案是从https://www.microsoft.com/en-us/download/details.aspx?id=44266

下载并安装VCforPython2.7

然后尝试pip install numpy。

100%工作

答案 3 :(得分:0)

我尝试为Windows 7,64位安装numpy并花了很长时间。我其实是想设置sklearn。研究了许多帖子,记录了对我有用的内容。希望它能节省您的时间! https://simplemachinelearning.wordpress.com/2015/11/09/set-up-sklearn-on-windows/

答案 4 :(得分:0)

在为机器学习设置python时我也遇到了上述问题。

我按照以下步骤操作: -

安装python-2.7.13.msi

•设置PATH = C:\ Python27

•设置PATH = C:\ Python27 \ Scripts

转到http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

已下载: - •numpy-1.13.1 + mkl-cp27-cp27m-win32.whl                  •scipy-0.18.0-cp27-cp27m-win32.whl

安装numpy: pip install numpy-1.13.1 + mkl-cp27-cp27m-win32.whl

安装scipy:     pip install scipy-0.18.0-cp27-cp27m-win32.whl

您可以使用以下cmds测试正确性: -

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