# nvie/pip-tools

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nvie-pip-tools).**

8,005 stars · 664 forks · Python · BSD-3-Clause

## Links

- GitHub: https://github.com/nvie/pip-tools
- Homepage: https://pip-tools.rtfd.io
- awesome-repositories: https://awesome-repositories.com/repository/nvie-pip-tools.md

## Description

pip-tools is a set of command line utilities for compiling high-level Python dependency lists into pinned requirements files. It functions as a dependency lock tool and requirements compiler that resolves transitive dependencies to produce a deterministic list of packages.

The project enables the maintenance of separate production and development dependency layers through layered requirement constraints. It supports targeted package upgrades and the generation of content hashes to verify package integrity during installation.

The toolset covers dependency locking, version updates, and virtual environment synchronization to ensure a project installs consistently across different machines. It aligns installed packages with a pinned requirements file by adding, removing, or upgrading versions as needed.

## Tags

### DevOps & Infrastructure

- [Lockfile Generators](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/version-compatibility-management/lockfile-generators.md) — Generates deterministic lockfiles that record exact versions of all dependencies to ensure reproducible installations.
- [Dependency Version Updates](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/dependency-versioning/dependency-version-updates.md) — Refreshes pinned package versions to the latest compatible releases based on defined version constraints. ([source](https://github.com/nvie/pip-tools#readme))

### Development Tools & Productivity

- [Dependency Lock Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-lock-managers.md) — Generates and maintains locked requirements files to ensure consistent dependency versions across environments. ([source](https://github.com/nvie/pip-tools#readme))
- [Python Package Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/python-package-managers.md) — Provides tools for managing Python dependencies, including updating and syncing virtual environments.
- [Requirements Compilers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/python-package-managers/requirements-compilers.md) — Resolves transitive dependencies and produces a locked list of pinned packages with content hashes.
- [Environment Synchronizers](https://awesome-repositories.com/f/development-tools-productivity/environment-synchronizers.md) — Aligns the current virtual environment with a lock file by adding, removing, or upgrading packages.
- [Python Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/python-environment-managers.md) — Aligns installed Python packages in a virtual environment with a pinned requirements file.
- [Deterministic Dependency Locking](https://awesome-repositories.com/f/development-tools-productivity/reproducible-build-environments/deterministic-dependency-locking.md) — Creates deterministic requirements files from general dependency lists to guarantee reproducible installations. ([source](https://github.com/nvie/pip-tools#readme))
- [Dependency Constraints](https://awesome-repositories.com/f/development-tools-productivity/dependency-constraints.md) — Provides the ability to use a high-level requirements file as a filter to lock specific versions of sub-dependencies.
- [Layered Dependency Constraints](https://awesome-repositories.com/f/development-tools-productivity/layered-dependency-constraints.md) — Supports using one pinned requirements file as a constraint for another to maintain compatibility between environment layers. ([source](https://github.com/nvie/pip-tools#readme))
- [Layered Requirements Workflows](https://awesome-repositories.com/f/development-tools-productivity/layered-requirements-workflows.md) — Enables managing separate but compatible dependency lists for development, testing, and production environments.
- [Package Upgraders](https://awesome-repositories.com/f/development-tools-productivity/package-upgraders.md) — Allows for targeted upgrades of specific packages or all dependencies while maintaining a deterministic lock file. ([source](https://github.com/nvie/pip-tools#readme))
- [Reproducible Build Environments](https://awesome-repositories.com/f/development-tools-productivity/reproducible-build-environments.md) — Guarantees consistent and secure Python installations across environments using locked requirements files and hashes.

### Software Engineering & Architecture

- [Dependency Resolution Engines](https://awesome-repositories.com/f/software-engineering-architecture/dependency-resolution-engines.md) — Implements a resolution engine that analyzes package dependency trees to find compatible versions satisfying all constraints.

### Security & Cryptography

- [Cryptographic Hash Verifiers](https://awesome-repositories.com/f/security-cryptography/cryptographic-hash-verifiers.md) — Adds content hashes to requirements files to verify package integrity during the installation process. ([source](https://github.com/nvie/pip-tools#readme))
- [Integrity Verifications](https://awesome-repositories.com/f/security-cryptography/security/cryptography-and-secrets/cryptographic-primitives-management/cryptographic-hash-computations/data-integrity-identifiers/integrity-verifications.md) — Computes and stores cryptographic hashes of packages to verify their integrity during installation.

### Part of an Awesome List

- [Package Management](https://awesome-repositories.com/f/awesome-lists/devtools/package-management.md) — Manage and update Python package dependencies.
