当前位置: 首页 > news >正文

whl文件名后缀

whl文件名后缀

1. Wheel 文件名的基本格式

Wheel 名称遵循 PEP 427 规范,通用格式为:

{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl
  • distribution:包名
  • version:包版本
  • build tag(可选):构建号
  • python tag:支持的 Python 解释器及版本
  • abi tag:二进制兼容的 ABI(应用二进制接口)
  • platform tag:目标操作系统和硬件平台

例子:

mypkg-1.2.3-1-cp39-cp39-manylinux2014_x86_64.whl│    │   │    │            └──── platform tag│    │   │    └──────────────── abi tag│    │   └─────────────────────── python tag│    └─────────────────────────── build tag└─────────────────────────────── distribution-version

2. build tag

  • 格式:一个整数,有时候也会带字母或其他标识
  • 用途:同一版本的多次编译时区分,比如针对不同源或依赖变动的二进制重构
  • 示例:
    • mypkg-1.0-1-...mypkg-1.0-2-... 表示同一版本的第 1 次和第 2 次构建

3. python tag

指明哪些 Python 解释器及版本可以安装该 Wheel。常见格式及含义:

tag 示例含义
py3支持所有 Python 3.x
py36py37专用于 Python 3.6、3.7 等
py2.py3同时支持 Python 2.x 和 3.x
cp39CPython 3.9
cp310CPython 3.10
pp37PyPy 3.7
jy37Jython 2.7(标识为 jy27)等
  • 前缀
    • py:纯 Python 实现
    • cp:CPython(二进制扩展)
    • pp:PyPy
    • jy:Jython

4. abi tag

ABI(Application Binary Interface)决定了编译的 C 扩展与解释器的二进制兼容性。常见 ABI tag:

tag 示例含义
none纯 Python 包,不含 C 扩展
abi3使用了稳定的“limited API”(PEP 384),跨多个 CPython 版本兼容
cp39针对 CPython 3.9 标准 ABI 编译
cp39mCPython 3.9 + pymalloc enabled(m
cp310dCPython 3.10 Debug build(d
  • 如果 python tagabi tag 一致(如 cp39-cp39),表示该包针对该版本的标准 ABI 编译
  • 带后缀的如 mdu 等表示特定的编译选项

5. platform tag

描述该 Wheel 的目标操作系统、系统版本和 CPU 架构。常见平台 tag 及示例:

platform tag 示例含义
manylinux1_x86_64Linux x86_64,符合 Manylinux1 标准
manylinux2014_aarch64Linux ARM64,符合 Manylinux2014 标准
win_amd64Windows 64 位
win32Windows 32 位
macosx_10_9_x86_64macOS 10.9+ on x86_64
macosx_11_0_arm64macOS 11+ on Apple Silicon (ARM64)
any平台无关(纯 Python 包)
  • manylinux 系列:用于在大多数 Linux 发行版上安装二进制扩展
  • macosx:通常还会带上最低支持的 macOS 版本号
  • any:完全纯 Python,无平台限制

6. 综合示例解析

Wheel 名称解释
requests-2.28.1-py3-none-any.whl纯 Python 包 requests v2.28.1,支持所有 Python 3,平台无关
numpy-1.24.0-cp39-cp39-manylinux2014_x86_64.whlnumpy v1.24.0,CPython 3.9 标准 ABI,Linux x86_64 二进制
Pillow-9.3.0-cp310-cp310-win_amd64.whlPillow v9.3.0,CPython 3.10,Windows 64 位
somepkg-0.1.0-2-cp38-abi3-manylinux1_x86_64.whlsomepkg v0.1.0,第 2 次构建,CPython 3.8 编译但使用 abi3,Linux x86_64

7. 为什么要了解这些后缀

  1. 避免安装失败
    • pip install package.whl 时,若当前环境的 Python 版本、ABI 或平台与 Wheel 不匹配,安装会被跳过或报错。
  2. 提高下载速度
    • 选择预编译好的 .whl,可免去源码编译时间,尤其是大型 C 扩展库(如 NumPy、SciPy)。
  3. 跨平台兼容
    • 理解 manylinuxmacosxwin 等标签,有助于在不同系统间无痛部署。

8. 查找可用的 Wheel

pip index versions PACKAGE_NAME

pip install PACKAGE_NAME --only-binary=:all:
  • 第一个命令列出所有可用版本及对应的 Wheel
  • 第二个命令强制只使用二进制 Wheel 安装

相关文章:

  • 传奇各职业/战士/法师/道士/戒指爆率及出处产出地/圣战/法神/天尊/虹魔/魔血/麻痹/超负载/求婚/隐身/传送/复活/护身/祈祷/火焰
  • PyQt 或 PySide6 进行 GUI 开发文档与教程
  • 电商平台的订单状态设计流程
  • NHANES指标推荐:TyG指数
  • 计算机启动流程中,都干了啥事。比如文件挂在,操作系统加载,中断向量表加载,磁盘初始化在哪阶段。
  • K8S - 深入解析 Service 与 Ingress - 服务暴露与流量管理
  • 在多socket多核计算机上配置MPI和OpenMP
  • Protubuf入门 --- 01基本语法与编译使用
  • C语言数据类型与内存布局
  • 算法竞赛进阶指南.巡逻
  • 13分区排烟 无法远程启动 12-1-4,排烟管道出口未连接室外
  • Linux-07-Shell
  • python常用科学计算库及使用示例
  • 数字智慧方案6185丨智慧银行解决方案(51页PPT)(文末有下载方式)
  • 【免费】2010-2019年上市公司排污费数据
  • 迪米特法则(LoD)
  • Baklib内容中台落地实战指南
  • 传奇各职业/战士/法师/道士/手套/手镯/护腕/神秘腰带爆率及出处产出地/圣战/法神/天尊/祈祷/虹魔/魔血
  • 用c 编写的笔记搜索程序
  • 如何用Python绘制两个圆之间的8条公切线
  • 长三角铁路今日预计发送390万人次,昨日客发量同比增长10.5%
  • 微软上财季净利增长18%:云业务增速环比提高,业绩指引高于预期
  • 新能源车盈利拐点:8家上市车企去年合计净利854亿元,多家扭亏
  • 网警查处编造传播“登顶泰山最高可得3万奖金”网络谣言者
  • 圆桌|如何应对特朗普政府的关税霸凌?一种联合国视角的思考
  • 量子传感新技术“攻克”退相干难题