# python-poetry/poetry

**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/python-poetry-poetry).**

34,278 stars · 2,404 forks · Python · mit

## Links

- GitHub: https://github.com/python-poetry/poetry
- Homepage: https://python-poetry.org
- awesome-repositories: https://awesome-repositories.com/repository/python-poetry-poetry.md

## Topics

`dependency-manager` `package-manager` `packaging` `poetry` `python`

## Description

Poetry is a comprehensive dependency manager and packaging tool for Python projects. It functions as a configuration engine that resolves complex dependency graphs, manages isolated virtual environments, and ensures reproducible builds through deterministic lock file generation. By centralizing project metadata and build requirements into a single configuration file, it provides a unified workflow for managing the entire lifecycle of a Python codebase.

The project distinguishes itself through its constraint-based solver, which evaluates environment markers and version requirements to maintain compatibility across intricate dependency trees. It offers a robust extensibility architecture via a plugin system, allowing developers to inject custom commands and modify internal workflows. Furthermore, it streamlines the distribution process by automating the creation of source and binary artifacts and handling secure publication to remote repositories.

Beyond its core management capabilities, the tool supports a wide range of development tasks, including dependency group organization, local path referencing, and the management of custom package sources. It provides extensive tooling for environment inspection, shell integration, and configuration validation to ensure that projects remain consistent across different development and deployment environments.

## Tags

### Development Tools & Productivity

- [Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers.md) — Resolves version constraints and generates lock files for consistent environments. ([source](https://python-poetry.org/))
- [Dependency Management](https://awesome-repositories.com/f/development-tools-productivity/dependency-management.md) — Record exact versions of all project dependencies in a lock file to ensure that builds remain reproducible across different machines and environments. ([source](https://python-poetry.org/docs/cli/))
- [Dependency Resolvers](https://awesome-repositories.com/f/development-tools-productivity/dependency-resolvers.md) — Calculates valid dependency graphs by evaluating version constraints and environment markers.
- [Language-Specific Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/language-specific-dependency-managers.md) — Resolves and installs project dependencies using deterministic lock files for consistent environments.
- [Dependency Installers](https://awesome-repositories.com/f/development-tools-productivity/dependency-installers.md) — Downloads required packages while respecting version constraints and repository locations. ([source](https://python-poetry.org/docs/cli/))
- [Environment Activation](https://awesome-repositories.com/f/development-tools-productivity/environment-activation.md) — Enables virtual environments within the current shell session for immediate use. ([source](https://python-poetry.org/docs/managing-environments/))
- [Lock Files](https://awesome-repositories.com/f/development-tools-productivity/lock-files.md) — Records exact dependency versions and hashes to guarantee reproducible builds across environments.
- [Package Builders](https://awesome-repositories.com/f/development-tools-productivity/package-builders.md) — Creates source distributions and wheels to prepare code for installation. ([source](https://python-poetry.org/))
- [Virtual Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/virtual-environment-managers.md) — Manages project-specific Python runtimes and dependency sets to prevent version conflicts between different projects on the same machine. ([source](https://python-poetry.org/docs/cli/))
- [Automated Distribution Pipelines](https://awesome-repositories.com/f/development-tools-productivity/automated-distribution-pipelines.md) — Streamlines building, authenticating, and publishing code packages.
- [Build Backends](https://awesome-repositories.com/f/development-tools-productivity/build-backends.md) — Delegates archive creation to standardized backends to ensure compliance with modern packaging specifications.
- [Dependency Lock Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-lock-managers.md) — Control the creation and maintenance of lock files to ensure team consistency or flexible versioning during the distribution of software libraries. ([source](https://python-poetry.org/docs/libraries/))
- [Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/environment-managers.md) — Manages isolated virtual environments to prevent version conflicts and ensure consistent interpreter usage.
- [Runtime Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/runtime-environment-managers.md) — Creates and isolates language runtimes to ensure consistent execution across development projects.
- [Version Constraints](https://awesome-repositories.com/f/development-tools-productivity/version-constraints.md) — Enforces project stability by defining precise version requirements for dependencies. ([source](https://python-poetry.org/docs/dependency-specification/))
- [Virtual Environments](https://awesome-repositories.com/f/development-tools-productivity/virtual-environments.md) — Manages project-specific runtimes and dependency sets to prevent version conflicts.
- [Build Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/build-orchestrators.md) — Orchestrates build backends and compilation scripts to prepare software artifacts for deployment.
- [Command Execution](https://awesome-repositories.com/f/development-tools-productivity/command-execution.md) — Executes scripts and tools within isolated environments to ensure dependency consistency. ([source](https://python-poetry.org/docs/basic-usage/))
- [Environment Synchronizers](https://awesome-repositories.com/f/development-tools-productivity/environment-synchronizers.md) — Aligns the local environment with locked dependencies by removing extraneous packages. ([source](https://python-poetry.org/docs/managing-dependencies/))
- [Package Publishers](https://awesome-repositories.com/f/development-tools-productivity/package-publishers.md) — Uploads built packages to public or private repositories. ([source](https://python-poetry.org/))
- [Project Configuration](https://awesome-repositories.com/f/development-tools-productivity/project-configuration.md) — Uses a centralized configuration file to define project identity and build requirements.
- [Project Initializers](https://awesome-repositories.com/f/development-tools-productivity/project-initializers.md) — Creates project configuration files interactively to establish a codebase. ([source](https://python-poetry.org/docs/cli/))
- [Configuration Managers](https://awesome-repositories.com/f/development-tools-productivity/configuration-managers.md) — Manages local and global configuration settings through command-line operations. ([source](https://python-poetry.org/docs/configuration/))
- [Dependency Groups](https://awesome-repositories.com/f/development-tools-productivity/dependency-groups.md) — Categorizes project dependencies into logical sets to distinguish between runtime and development requirements. ([source](https://python-poetry.org/docs/managing-dependencies/))
- [Distribution Artifacts](https://awesome-repositories.com/f/development-tools-productivity/distribution-artifacts.md) — Creates source and binary archives to prepare code for reliable distribution. ([source](https://python-poetry.org/docs/cli/))
- [Package Publishing Tools](https://awesome-repositories.com/f/development-tools-productivity/package-publishing-tools.md) — Upload built project files to remote repositories by handling authentication and registration requirements to ensure software is indexed and available for others. ([source](https://python-poetry.org/docs/cli/))
- [Package Sources](https://awesome-repositories.com/f/development-tools-productivity/package-sources.md) — Enables fetching dependencies from private or alternative repositories by configuring custom package sources. ([source](https://python-poetry.org/docs/repositories/))
- [Packaging Utilities](https://awesome-repositories.com/f/development-tools-productivity/packaging-utilities.md) — Standardizes the bundling of code and metadata into distributable formats for installation.
- [Repository Sources](https://awesome-repositories.com/f/development-tools-productivity/repository-sources.md) — Controls dependency resolution by managing and prioritizing multiple package sources. ([source](https://python-poetry.org/docs/cli/))
- [Runtime Configuration Managers](https://awesome-repositories.com/f/development-tools-productivity/runtime-configuration-managers.md) — Updates the runtime environment by syncing plugins and dependencies. ([source](https://python-poetry.org/docs/cli/))
- [Build Configuration Tools](https://awesome-repositories.com/f/development-tools-productivity/build-configuration-tools.md) — Defines build requirements and system dependencies to ensure consistent compilation across diverse environments.
- [Environment Markers](https://awesome-repositories.com/f/development-tools-productivity/environment-markers.md) — Ensures correct package installation by applying conditional logic based on platform or runtime requirements. ([source](https://python-poetry.org/docs/dependency-specification/))
- [Plugin Managers](https://awesome-repositories.com/f/development-tools-productivity/plugin-managers.md) — Controls installed plugins to extend system functionality automatically. ([source](https://python-poetry.org/docs/plugins/))
- [Plugin Systems](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems.md) — Provides a hook-based system allowing external code to inject custom commands and modify workflows.
- [Project Settings Managers](https://awesome-repositories.com/f/development-tools-productivity/project-settings-managers.md) — Organizes project settings and dependency groups to streamline workflows. ([source](https://python-poetry.org/docs/cli/))

### Software Engineering & Architecture

- [Project Metadata Declarations](https://awesome-repositories.com/f/software-engineering-architecture/project-metadata-declarations.md) — Defines essential project information using standardized packaging formats. ([source](https://python-poetry.org/docs/pyproject/))
- [Build System Orchestrators](https://awesome-repositories.com/f/software-engineering-architecture/build-system-orchestrators.md) — Manages build backends to prepare software artifacts for deployment.
- [Build System Specifications](https://awesome-repositories.com/f/software-engineering-architecture/build-system-specifications.md) — Specifies build system requirements for consistent packaging. ([source](https://python-poetry.org/docs/pyproject/))

### Programming Languages & Runtimes

- [Project Interpreters](https://awesome-repositories.com/f/programming-languages-runtimes/project-interpreters.md) — Configures the project runtime by specifying the language interpreter and version. ([source](https://python-poetry.org/docs/managing-environments/))
- [Language Versions](https://awesome-repositories.com/f/programming-languages-runtimes/language-versions.md) — Manages language runtime distributions to ensure the correct version is used for development. ([source](https://python-poetry.org/docs/cli/))

### Security & Cryptography

- [Repository Credentials](https://awesome-repositories.com/f/security-cryptography/repository-credentials.md) — Secures repository access by managing credentials through system keyrings. ([source](https://python-poetry.org/docs/repositories/))
