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:

Windows PowerShell
(venv) PS> py -m pip install pip-tools
Shell
(venv) $ python -m pip install pip-tools

Key Features

  • Compiles fully pinned requirements.txt files from requirements.in and can also compile from modern project metadata like pyproject.toml, including extras throuhg --extra.
  • Resolves dependencies using pip tooling and generates hash-pinned outputs with --generate-hashes when you want stricter verification.
  • Controls upgrades with --upgrade for everything and --upgrade-package for targeted packages.
  • Syncs an environment to match the compiled files and removes extraneous packages with pip-sync.
  • Supports project defaults via .pip-tools.toml or pyproject.toml configuration 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