Python Wheel Filename Tags Explained

Python wheel filenames use standardized compatibility tags to ensure package installers like pip download binary packages that match your specific system environment. In a tag triplet such as cp311-cp311-manylinux_2_17_x86_64, the filename encodes the Python implementation and version, the Application Binary Interface (ABI), and the target operating system and CPU architecture. This guide breaks down each component of this compatibility tag triplet to explain exactly what it means and how it works.

The Compatibility Tag Triplet Structure

A wheel's compatibility is defined by a triplet format: {python tag}-{abi tag}-{platform tag}. These components tell package installers whether a pre-compiled binary can run on the target machine without requiring a source build.

1. The Python Tag: cp311

The first segment indicates the Python implementation and the language version the wheel was built for:

2. The ABI Tag: cp311

The middle segment defines the Application Binary Interface (ABI) requirements:

3. The Platform Tag: manylinux_2_17_x86_64

The final segment identifies the operating system, system libraries, and CPU architecture required to run the binary:

How Installers Use This Information

When you run pip install, the installer checks your machine's Python version, ABI, operating system, and hardware architecture. It compares your system against the compatibility tags present on available wheels in the index. If a wheel's triplet satisfies all three parameters—CPython 3.11, matching ABI, and an x86_64 Linux system with glibc 2.17 or newer—pip downloads and unpacks the binary, bypassing the need to compile code locally.