When you run pip install -r requirements.txt, pip processes these claims to determine which packages and versions to install. Claims can specify exact versions (package==1.0.0), minimum versions (package>=1.0.0), or version ranges (package>=1.0.0,<1.2.0).
| Claim Type | Example | Meaning |
|---|---|---|
| Exact version | package==1.0.0 |
Install version 1.0.0 specifically |
| Minimum version | package>=1.0.0 |
Install version 1.0.0 or newer |
| Maximum version | package<=1.0.0 |
Install version 1.0.0 or older |
| Version range | package>=1.0.0,<1.2.0 |
Install version between 1.0.0 and 1.2.0 |
Pip claims appear in several key locations:
requirements.txt files in Python projectssetup.py or pyproject.toml files for package metadataMost commonly, they appear in requirements.txt files. For example, a file might contain:
requests>=2.25.0 flask==2.0.1 pandas>=1.1.5,<1.2.0
Many developers confuse pip claims with package specifications or constraints. While related, they serve different purposes:
For example, if Package A requires Package B >=1.0.0, but Package B only provides ==1.0.1, pip will install 1.0.1 even though you only asked for >=1.0.0.
Consider a Django project with these requirements:
django>=3.2.0 psycopg2-binary==2.9.1 python-dotenv>=0.15.0
When running pip install -r requirements.txt, pip will:
This ensures consistent behavior across development, testing, and production environments.