问题说明
操作系统:ubuntu 16.04,python=2.7,从官网下载了pytorch=0.4.1的whl文件,用pip安装,报错如下:

错误原因
pip安装whl文件时,需要根据操作系统的配置来选择whl文件。
whl文件的名称可分为5部分:
- 库的名称(torch)
- 版本号(0.4.1)
- python编译器(cp27)
- 编译标志(cp27m)
- 操作系统(linux_x86_64)
其中,编译标志常见的有两种:m和mu(比如cp27m和cp27mu)。两者区别在于:cp27m是ucs2,cp27mu是ucs4,UCS2认为每个字符占用2个字节,UCS4认为每个字节占用4个字符,都是UNICODE的编码形式。
在不同平台上,pip支持的whl文件类型也不同。可以通过以下代码查看pip支持的whl文件类型:
# python2
import pip._internal
print(pip._internal.pep425tags.get_supported())
# python3
import wheel.pep425tags as w
print(w.get_supported('./'))

每个文件类型由一个三元组表示,三个元素分别表示:python编译器,编译标志,操作系统。
可以看到,cp27-cp27m-linux这样的组合是不合法的,而cp27-cp27mu-linux是可以的。
从官网上下载torch-0.4.1-cp27-cp27mu-linux_x86_64.whl,安装成功。 |