python之wheel 包命名规则、abi 兼容和安装
一、windows安装python包,遇见的问题
1、python3以后的版本,安装python包,可以直接使用pip安装,但是安装时偶尔报错
2、安装python源码包,如何确定自己该安装哪个版本,一看就晕倒~~~(没人扶,/(ㄒoㄒ)/~~)
一、wheel 包的命名规定
wheel 包的命名格式为 {distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl
1、python tag
-
py 无实现特定的拓展
-
cp CPython,也就是通常使用的 CPython 实现,大多数
-
ip IronPython,跑在 Windows CLI 平台上的 Python 实现
-
pp PyPy,带 JIT 的 Python 实现
-
jy Jython,跑在 JVM 上的 Python 实现
2、platform tag就是自己的平台
3、api tag
如果 sysconfig
定义了 SOABI
,那么就用 SOABI
的值。
二、如何判断给定 wheel 包是否能够安装(看了之后就不省人事了~~~)
通常判断依赖的时候,需要看下是否符合最低版本。不过 pip 判断给定 wheel 包的 abi 兼容的做法与此有些许差异。pip 的做法是,计算出一个支持的 abi tag 集合,然后判断目标 abi tag 是否在这个集合里。这个计算过程跟在打包时是一样的。这意味着,打包拓展的 CPython 需要跟安装的机器上的 CPython 版本是一致的,否则就装不了。对于“永远的2.7”来说,这不是什么问题;不过如果用的是 Python 3,又不能控制具体的 CPython 版本,对于 C 拓展还是现场编译安装比较靠谱。
三、说了半天有没有简单方法
from pip import pep425tags
print(pep425tags.get_supported())
这里就查看到自己的python所支持的wheel包:(\’python Tag\’,\’abi Tag\’,\’platform tag\’)
四、具体使用
查看以后到相应的wheel包,下载安装即可