zoukankan      html  css  js  c++  java
  • 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包,下载安装即可

  • 相关阅读:
    Elasticsearch 支持拼音自动补全
    laravel自动补全链接
    laravel的服务容器(药箱)、服务提供者(小盒子)、Facades(更方便用药),方便大家透彻理解
    php static静态属性和静态方法
    php面向对象的构造方法与析构方法
    MySQL事务-ROLLBACK,COMMIT用法详解
    php 事务处理transaction
    Python:初步学习Python
    iOS:自己写的一个星级评价的小Demo
    iOS:枚举enum的使用
  • 原文地址:https://www.cnblogs.com/skiler/p/6866069.html
Copyright © 2011-2022 走看看