pip "Could not find a version that satisfies the requirement"
pip looked on the index and found no release that matches your requirement. The cause is almost always a typo, a Python/platform mismatch, or a package that lives on a private index.
What this error means
pip aborts before installing anything, printing that it could not find a matching version and then "No matching distribution found" for the package. Re-running does not help - there is genuinely nothing on the index for this interpreter.
ERROR: Could not find a version that satisfies the requirement requets (from versions: none)
ERROR: No matching distribution found for requetsCommon causes
Misspelled or wrong package name
The name on PyPI differs from the import name, or there is a typo. requets vs requests, sklearn (the import) vs scikit-learn (the distribution) are classic examples.
No wheel for this Python version or platform
The package only ships wheels for certain Python versions or OS/arch. On a newer Python (e.g. 3.13) or musl/Alpine, no compatible distribution exists yet, so pip reports "from versions: none".
The package lives on a private index
If the dependency is internal, the default PyPI index has nothing. Without --index-url/--extra-index-url pointed at your private registry, pip cannot see it.
How to fix it
Verify the exact name and available versions
Search the real distribution name and confirm which versions exist for your interpreter.
pip index versions requests
python --version # confirm the interpreter pip is usingMatch the Python version to the wheels
- Check the project’s supported Python versions on PyPI.
- Pin CI to a Python version the package ships wheels for (e.g. 3.11 if 3.13 has no wheel yet).
- On Alpine/musl, switch to a glibc base image or install from sdist with a build toolchain.
Point pip at the right index for private packages
pip install --extra-index-url https://pypi.example.com/simple/ your-internal-pkgHow to prevent it
- Pin a known-good Python version in CI rather than tracking the newest release.
- Keep distribution names (not import names) in requirements files.
- Configure private indexes in pip.conf or the workflow, not ad hoc per command.