在 Windows 上安装 NumPy
Installing NumPy on Windows
我根本无法在 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对应的资源:http://sourceforge.net/projects/numpy/file/NumPy/。服务器 returns 一个 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。要获得正确的体系结构,请检查 32 位名称 win32
和 64 位名称 amd64
。要获得正确的 Python 版本,请检查 cpXX
:第一个 X 是主要版本,第二个 X 是次要版本,例如 cp27
表示 CPython 2.7.
示例:pip install numpy‑1.9.2rc1+mkl‑cp27‑none‑win32.whl
硬解:安装和使用开发工具
免责声明:以下所有解释可能不是很清楚。它们来自不同时刻的多次调查,但在我的配置中,它们导致了一个可行的解决方案。某些 link 可能无用或多余,但这正是我注意到的。所有这些都需要一些清理,也可能需要概括。
首先,您需要了解 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)]
方括号中的最后部分是编译器的标识部分。不幸的是,这不是很简单,那里有通信列表:
- windows - What version of Visual Studio is Python on my computer compiled with? - Stack Overflow
- visual studio - Detecting compiler versions during compile time - Stack Overflow3
- Pre-defined Compiler Macros / Wiki / Compilers
- WinCvt - Windows Converter toolkit
在我上面给出的示例中,这意味着 Microsoft Visual C++ 2010 64 位.
如何安装 Visual C++
您再也找不到适用于现代版本的独立 Visual C++ 包。所以你需要自己安装 Windows SDK。
这里有一些参考 links:
- Download Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 from Official Microsoft Download Center:适用于 Visual C++ 15.00(Visual Studio 2008)。对应WinSDK 7.
- Download Microsoft Windows SDK for Windows 7 and .NET Framework 4 from Official Microsoft Download Center:适用于 Visual C++ 16.00(Visual Studio 2010)。对应WinSDK 7.1.
- installation - where can I download the full installer for Visual C++ Express? - Super User
疑难解答
您可能在安装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 7 SDK Installation Failure
- Error installing Windows 7 SDK 7.1 with VS2008, VS2010 Premium on Win 7 32bit
作为解决方案,您可以查看此 link:Windows SDK Fails to Install with Return Code 5100
事情是删除所有冲突的(理解:SDK 安装程序尝试自行安装的)Visual C++ 可再发行版本。
使用开发工具
通常你应该运行 vsvarsall.bat
(位于Visual Studio安装路径的VC
文件夹内 - 例如:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat
)来设置适当的环境变量,以便 distutils
在尝试编译包时不会失败。
此批处理脚本接受一个参数,该参数应设置所需的体系结构。但是,我发现在尝试其中几个参数时,使用免费版本的 SDK 会丢失一些额外的脚本。
只是说,如果您正在为 32 位架构编译,只需调用 vsvarsall.bat
即可。如果你需要为 64 位编译,你可以直接调用 SetEnv.cmd
,位于 SDK 安装路径下的某个地方 - 例如:"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
.
在 Windows 上,pip
非常适合安装不需要编译的包。否则,说真的,省去构建和维护包的麻烦,并利用别人为你所做的工作。我建议使用以下任一 Python 发行版:
Anaconda 的下载和安装要大一些,但它默认包含许多有用的第三方包(例如 numpy)。 ActivePython 包含一个包管理器,它允许您轻松安装预编译的二进制文件(安装 numpy 与 pypm install numpy
一样简单)。
使用这些 Python 发行版的优势在于,您可以在几分钟内以易于重现的方式获得工作安装 运行。
我尝试为 windows 7、64 位安装 numpy,但花了很长时间。我实际上是在尝试设置 sklearn。研究了许多帖子,记录了对我有用的东西。希望它可以节省您的时间!
https://simplemachinelearning.wordpress.com/2015/11/09/set-up-sklearn-on-windows/
最佳解决方案是从 https://www.microsoft.com/en-us/download/details.aspx?id=44266
下载并安装 VCforPython2.7
然后尝试 pip install numpy。
100% 工作
我在为机器学习设置 python 时也遇到了上述问题。
我遵循了以下步骤:-
安装python-2.7.13.msi
• 设置路径=C:\Python27
• 设置路径=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 安装 numpy-1.13.1+mkl-cp27-cp27m-win32.whl
正在安装 scipy:
pip 安装 scipy-0.18.0-cp27-cp27m-win32.whl
您可以使用以下命令测试正确性:-
>>> import numpy
>>> import scipy
>>> import sklearn
>>> numpy.version.version
'1.13.1'
>>> scipy.version.version
'0.19.1'
>>>
我根本无法在 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对应的资源:http://sourceforge.net/projects/numpy/file/NumPy/。服务器 returns 一个 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。要获得正确的体系结构,请检查 32 位名称 win32
和 64 位名称 amd64
。要获得正确的 Python 版本,请检查 cpXX
:第一个 X 是主要版本,第二个 X 是次要版本,例如 cp27
表示 CPython 2.7.
示例:pip install numpy‑1.9.2rc1+mkl‑cp27‑none‑win32.whl
硬解:安装和使用开发工具
免责声明:以下所有解释可能不是很清楚。它们来自不同时刻的多次调查,但在我的配置中,它们导致了一个可行的解决方案。某些 link 可能无用或多余,但这正是我注意到的。所有这些都需要一些清理,也可能需要概括。
首先,您需要了解 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)]
方括号中的最后部分是编译器的标识部分。不幸的是,这不是很简单,那里有通信列表:
- windows - What version of Visual Studio is Python on my computer compiled with? - Stack Overflow
- visual studio - Detecting compiler versions during compile time - Stack Overflow3
- Pre-defined Compiler Macros / Wiki / Compilers
- WinCvt - Windows Converter toolkit
在我上面给出的示例中,这意味着 Microsoft Visual C++ 2010 64 位.
如何安装 Visual C++
您再也找不到适用于现代版本的独立 Visual C++ 包。所以你需要自己安装 Windows SDK。
这里有一些参考 links:
- Download Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 from Official Microsoft Download Center:适用于 Visual C++ 15.00(Visual Studio 2008)。对应WinSDK 7.
- Download Microsoft Windows SDK for Windows 7 and .NET Framework 4 from Official Microsoft Download Center:适用于 Visual C++ 16.00(Visual Studio 2010)。对应WinSDK 7.1.
- installation - where can I download the full installer for Visual C++ Express? - Super User
疑难解答
您可能在安装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 7 SDK Installation Failure
- Error installing Windows 7 SDK 7.1 with VS2008, VS2010 Premium on Win 7 32bit
作为解决方案,您可以查看此 link:Windows SDK Fails to Install with Return Code 5100
事情是删除所有冲突的(理解:SDK 安装程序尝试自行安装的)Visual C++ 可再发行版本。
使用开发工具
通常你应该运行 vsvarsall.bat
(位于Visual Studio安装路径的VC
文件夹内 - 例如:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat
)来设置适当的环境变量,以便 distutils
在尝试编译包时不会失败。
此批处理脚本接受一个参数,该参数应设置所需的体系结构。但是,我发现在尝试其中几个参数时,使用免费版本的 SDK 会丢失一些额外的脚本。
只是说,如果您正在为 32 位架构编译,只需调用 vsvarsall.bat
即可。如果你需要为 64 位编译,你可以直接调用 SetEnv.cmd
,位于 SDK 安装路径下的某个地方 - 例如:"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
.
在 Windows 上,pip
非常适合安装不需要编译的包。否则,说真的,省去构建和维护包的麻烦,并利用别人为你所做的工作。我建议使用以下任一 Python 发行版:
Anaconda 的下载和安装要大一些,但它默认包含许多有用的第三方包(例如 numpy)。 ActivePython 包含一个包管理器,它允许您轻松安装预编译的二进制文件(安装 numpy 与 pypm install numpy
一样简单)。
使用这些 Python 发行版的优势在于,您可以在几分钟内以易于重现的方式获得工作安装 运行。
我尝试为 windows 7、64 位安装 numpy,但花了很长时间。我实际上是在尝试设置 sklearn。研究了许多帖子,记录了对我有用的东西。希望它可以节省您的时间! https://simplemachinelearning.wordpress.com/2015/11/09/set-up-sklearn-on-windows/
最佳解决方案是从 https://www.microsoft.com/en-us/download/details.aspx?id=44266
下载并安装 VCforPython2.7然后尝试 pip install numpy。
100% 工作
我在为机器学习设置 python 时也遇到了上述问题。
我遵循了以下步骤:-
安装python-2.7.13.msi
• 设置路径=C:\Python27
• 设置路径=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 安装 numpy-1.13.1+mkl-cp27-cp27m-win32.whl
正在安装 scipy: pip 安装 scipy-0.18.0-cp27-cp27m-win32.whl
您可以使用以下命令测试正确性:-
>>> import numpy
>>> import scipy
>>> import sklearn
>>> numpy.version.version
'1.13.1'
>>> scipy.version.version
'0.19.1'
>>>