tensorflow_gpu-1.7.0-cp36-cp36m-win_amd64.whl 这长长的文件名是什么意思?
xxx.whl is not a supported wheel on this platform. 同样的操作为什么会报这个?
为什么Pycharm里安装Package时,明明看见了包的名字,点了安装却找不到?
whl文件的文件名并不是随便起的,起初笔者以为也只是某种规范命名而已,就算改成xxx.whl应该都可以,然而不只如此。pip会根据当前平台情况规定这个文件名。
import pip
print(pip.pep425tags.get_supported())

运行结果如上图,会将支持的平台以3个一组的形式列举出来,分别对应文件名最后三个后缀。当文件下载重复时,Windows总会自动添加 (2) 这样的数字,而这一部分也会被归在这个命名判断里,于是发现 win_amd (2) 不存在,便会报出不支持该平台。笔者被此坑了好久。
这一组中前两个的具体含义笔者不清楚,只知道应该是指支持的版本,望大佬告知。
最后一个代表了平台。而有的人64位操作系统支持的是win32,有的人是win_amd64,笔者甚至一个电脑能装出两种。笔者认为这坑的根源一般源自python官网的下载。官网最明显的下载链接笔者直接下出了32位版本,pip在此版本的python中支持win32后缀。而64位版本要在下方的各安装版本列表里面找到。

虽然这种错误技术性不高,但却很隐蔽,一般包又都支持win32与win_amd64在安装过程中不会发现问题,只有像一些特殊情况才可能发现奇怪之处。

也可从上图标注位置查看当前python是64位还是32位。而对于Windows,前面的1900,我们下回再说。
总结一下:
轮子名代表其支持平台,pip安装时会对其进行检测与匹配,有重要意义。
不支持当前平台,可能是你下错轮子了也可能是你装错python了。
Pycharm里有包名却下不下来,因为当前使用的python不支持这个包的任何版本,你需要查清这个包的编译情况及其支持的平台。pip找不到应该有的包时同理。
网友评论