pip-tools
pip-tools is a set of CLI tools that generate and apply fully pinned package requirement files for Python projects using pip.
Installation and Setup
Install it from PyPI:
Key Features
- Compiles fully pinned
requirements.txtfiles fromrequirements.inand can also compile from modern project metadata likepyproject.toml, including extras throuhg--extra. - Resolves dependencies using
piptooling and generates hash-pinned outputs with--generate-hasheswhen you want stricter verification. - Controls upgrades with
--upgradefor everything and--upgrade-packagefor targeted packages. - Syncs an environment to match the compiled files and removes extraneous packages with
pip-sync. - Supports project defaults via
.pip-tools.tomlorpyproject.tomlconfiguration under[tool.pip-tools].
Usage
Create an input file that lists only your direct dependencies:
Text
requirements.in
flask
requests
Compile a fully pinned requirements.txt file:
Shell
$ pip-compile
Install exactly what is in requirements.txt in other system or environment:
Shell
$ pip-sync
Upgrade everything to the latest compatible versions:
Shell
$ pip-compile --upgrade
$ pip-sync
Upgrade selected packages only:
Shell
$ pip-compile --upgrade-package requests
$ pip-sync
Compile from pyproject.toml and include an extra:
Shell
$ pip-compile pyproject.toml --extra dev
By Leodanis Pozo Ramos • Updated Dec. 17, 2025