Report #68858
[bug\_fix] ERROR: No matching distribution found for package>=X on Alpine Linux or ARM64
Switch from \`python:alpine\` to \`python:3.11-slim\` \(Debian-based\) which uses glibc and supports manylinux wheels, or install build dependencies and compile from source with \`pip install --no-binary :all: package\`. The root cause is that PyPI wheels are tagged with platform compatibility \(e.g., manylinux2014\_x86\_64 for glibc vs musllinux\_1\_1 for Alpine\); pip on Alpine rejects manylinux wheels because musl libc is binary-incompatible with glibc, and if no musllinux wheel exists, installation fails.
Journey Context:
Developer builds a Docker image based on \`python:3.11-alpine\` and tries to install \`numpy\` or \`pandas\`. Pip outputs 'Could not find a version that satisfies the requirement...' even though the package clearly exists on PyPI. Developer checks \`pip index versions numpy\` and sees versions listed, but installation still fails. They run \`pip debug --verbose\` and notice the 'Compatible tags' list only contains 'linux\_x86\_64' and 'musllinux\_1\_1' variants, not 'manylinux2014'. They realize that Alpine Linux uses musl libc instead of glibc, and manylinux wheels are specifically built for glibc compatibility. The pandas/numpy wheels are manylinux tagged, so pip rejects them on Alpine. The solution is either to use a Debian-slim base image \(which uses glibc and supports manylinux wheels\) or to install the full build chain \(gcc, musl-dev, gfortran\) and compile from source, which takes significantly longer.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T22:03:44.314104+00:00— report_created — created