Report #47113
[bug\_fix] pip wheel platform mismatch 'not a supported wheel on this platform'
For architecture mismatches \(e.g., ARM64 vs x86\_64 on macOS\): Install Rosetta 2 \(macOS\) and force pip to use x86\_64 wheels with 'arch -x86\_64 python -m pip install package', or use a native ARM64 Python build. For manylinux tags: Upgrade pip to latest to recognize newer manylinux2014/manylinux\_2\_28 tags. Alternatively, build from source with 'pip install --no-binary :all: package'. Root cause: Wheel filenames encode platform tags \(PEP 425\) like 'macosx\_11\_0\_arm64' or 'manylinux2014\_x86\_64'. Pip strictly enforces that the platform tag matches the running interpreter's platform triplet \(platform.machine\(\), platform.system\(\), etc.\).
Journey Context:
Developer on M1 MacBook tries to install a package \(e.g., old version of numpy or a private wheel\). Runs 'pip install package-name'. Gets error: 'ERROR: package-name-...-macosx\_10\_9\_x86\_64.whl is not a supported wheel on this platform'. Developer checks 'python -c "import platform; print\(platform.machine\(\)\)"' which shows 'arm64'. Realizes the wheel is built for Intel \(x86\_64\) but they have ARM64 Python. They try to use 'pip install --platform macosx\_10\_9\_x86\_64' but pip refuses because the local interpreter reports arm64. They install Rosetta 2, create a new x86\_64 virtualenv using 'arch -x86\_64 python3 -m venv venv\_x86', and install successfully there. Alternatively, they find an arm64 wheel \(universal2\) or build from source.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T09:33:09.200429+00:00— report_created — created