无法从 wheel 格式安装 NumPy

Cannot install NumPy from a wheel format

我正在尝试安装 NumPy from a wheel (.whl) 文件。我收到错误:

numpy-1.9.1%2Bmkl-cp34-none-win_amd64.whl is not a supported wheel on this platform.

详情:

日志文件显示:


d:\Program Files\WinPython-64bit-3.4.2.4\python-3.4.2.amd64\Scripts\pip run on 01/23/15 11:55:21
numpy-1.9.1%2Bmkl-cp34-none-win_amd64.whl is not a supported wheel on this platform.
Exception information:
Traceback (most recent call last):
File "D:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
status = self.run(options, args)
File "D:\Python34\lib\site-packages\pip\commands\install.py", line 257, in run
InstallRequirement.from_line(name, None))
File "D:\Python34\lib\site-packages\pip\req.py", line 167, in from_line
raise UnsupportedWheel("%s is not a supported wheel on this platform." % wheel.filename)
pip.exceptions.UnsupportedWheel: numpy-1.9.1%2Bmkl-cp34-none-win_amd64.whl is not a supported wheel on this platform.

怎么了?

简答:将文件重命名为 numpy-1.9.1%2Bmkl-cp34-none-win32.whl 以进行安装。

您可以通过 运行 检查您的 pip 工具接受安装的标签:

import pip; print(pip.pep425tags.get_supported())

在这种情况下,pip 错误地将您的操作系统检测为 32 位,并且您尝试安装的文件在其文件名中为 win_amd64

如果您将文件重命名为 numpy-1.9.1%2Bmkl-cp34-none-win32.whl(现在包含被认为受支持的标签),那么您可以安装该软件包。这是一个技巧,因为该文件仍然是为 64 位构建的,但这允许您按预期安装包。

当前的 WinPython 包管理器需要两个字符的修复来接受识别新的 NumPy + mkl 'wheel'.

https://github.com/stonebig/winpython/commit/5e13230609a2e9f4d66d98c3776207ce4b4dd050

经过多次测试,我认为问题出在“win32”或“amd64”本身。我尝试用“any”替换这两个并且它起作用了。

作为解决方法,卸载 NumPy 包:

pip uninstall numpy

然后从缓存中重新安装:

pip install numpy

从 3.4.1 升级到 3.4.2 后,我在几个软件包中遇到了同样的问题。

导航到您的 'pip.py' 所在的目录,然后在 Windows 命令行中键入以下内容:

..\python.exe pip.py install name_of_package.whl

这应该有效。

我遇到了同样的问题,并尝试使用建议的解决方案解决它。

我把win64改成了win32,也没用。但后来我把名字改成了原来的名字,这次成功了!我唯一做的额外事情就是下线。太奇怪了。

要添加到其他可能的解决方案列表中,我必须升级 pip 本身。来自 Gholke's site 的最新二进制文件有“cp27m”标签,当我使用以下方法检查 pip 标签时没有显示:

import pip; print(pip.pep425tags.get_supported())

在我升级​​ pip 之后,wheel 不工作,但只是做一个常规的 pip install numpy 工作。

如果您安装了 Python 3.4,请确保安装 -cp34- 版本的 wheel 而不是 -cp35-

就我而言,在 Python (3.4.4 (AMD64)) 上安装 gohlke packages 的解决方法是更改​​“cp34m”部分而不是之前的“win*”部分答案:

python -c "import pip; print(pip.pep425tags.get_supported())":
[('cp34', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'),
('cp34', 'none', 'any'), ...

ls -ld *:

matplotlib-2.0.0b3-cp34-cp34m-win_amd64.whl
numpy-1.11.1+mkl-cp34-cp34m-win_amd64.whl
pandas-0.18.1-cp34-cp34m-win_amd64.whl

将以上名称改为:

matplotlib-2.0.0b3-cp34-none-win_amd64.whl
numpy-1.11.1+mkl-cp34-none-win_amd64.whl
pandas-0.18.1-cp34-none-win_amd64.whl

例如,pip install matplotlib-2.0.0b3-cp34-none-win_amd64.whl

Processing ...
...Successfully installed matplotlib-2.0.0b3

这与您的操作系统无关。卸载 Python 32 位并安装 Python 64 位,或者找到一个 32 位 wheel 文件。