Skip to content
Latchkey

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.

pip output
ERROR: Could not find a version that satisfies the requirement requets (from versions: none)
ERROR: No matching distribution found for requets

Common 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.

Terminal
pip index versions requests
python --version   # confirm the interpreter pip is using

Match the Python version to the wheels

  1. Check the project’s supported Python versions on PyPI.
  2. Pin CI to a Python version the package ships wheels for (e.g. 3.11 if 3.13 has no wheel yet).
  3. 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

Terminal
pip install --extra-index-url https://pypi.example.com/simple/ your-internal-pkg

How 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.

Frequently asked questions

Why does it say "from versions: none" even though the package exists on PyPI?
It exists, but no release ships a wheel or sdist compatible with your Python version, OS, or CPU architecture. pip filters to compatible files first, and that filtered set is empty.

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card