关于python 3.x:无法从wheel格式安装numpy

Cannot install numpy from wheel format

我正在尝试从whl文件安装numpy。我得到错误:

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

细节:Windows 8.1 Pro x64,提升的命令提示

Python3.4.2

戈尔克网站上的包裹编号

numpy-1.9.1%2bmkl-cp34-none-win_amd64.whl已复制到pip.exe文件夹中

日志文件显示:

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
eq.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工具接受安装的标签:

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

在这种情况下,PIP错误地检测到您的操作系统是32位的,而您试图安装的文件的文件名是win_amd64

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


经过几次测试,我认为问题在于"win32"或"amd64"本身。我试着用"any"替换这两个,但效果很好。

我对这种安装/编译的东西非常熟悉,所以如果我误导了任何人,请原谅,我只是想如果它对我有用,它可能对其他人有用。


在我的例子中,在python(3.4.4(amd64))上安装gohlke包的解决方案是更改"cp34m"部分,而不是上面的"win*"部分:

python-c"导入pip;打印(pip.pep425tags.get_supported())":

1
2
[('cp34', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'),
('cp34', 'none', 'any'), ...

LS - LD*:

1
2
3
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

将以上名称更改为:

1
2
3
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安装matplotlib-2.0.0b3-cp34-none-win_amd64.whl

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

为了添加到其他可能的解决方案列表中,我必须升级pip本身。Gholke网站上最新的二进制文件有"cp27m"标签,当我使用以下方法检查pip标签时,它没有显示出来:

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

在我升级了pip之后,轮子没有工作,只是做了一个普通的pip install numpy工作


如果安装了python 3.4,请确保安装了车轮的-cp34-版本,而不是-cp35-


我也有同样的问题,尝试着用建议的解决方案来解决。我把win64改成win32,但效果不太好。但后来我把名字改成了原来的名字,这次它起作用了!我做的唯一额外的事就是下线。这太奇怪了。


导航到您的'pip.py'所在的目录,然后在win命令'..\python.exe pip.py install name_of_package.whl'上键入following。这应该有效。


作为解决方法,卸载numpy包:pip uninstall numpy然后从缓存重新安装:pip install numpy在从3.4.1升级到3.4.2之后,几个包也出现了同样的问题。


当前的winpython包管理器需要一个2个字符的修复程序来接受以识别新的numpy+mkl"wheel"。https://github.com/stonebig/winpython/commit/5e13230609a2e9f4d66d98c376207ce4b4dd050


这与您的操作系统无关。卸载python 32位并安装python 64位,或者查找32位车轮文件。