poetry
Poetry is a Python packaging and dependency management tool that handles dependency installation, virtual environment management, package building, and publishing. It aims to provide a unified workflow for Python project management through configuration in pyproject.toml.
Key Components
Dependency Management
- Handles package installation and removal
- Resolves dependencies with version constraints
- Creates and updates lock files for reproducible installations
- Manages virtual environments automatically
- Supports dependency groups for development, testing, etc.
Project Management
- Initializes new Python projects with
poetry new
- Configures projects via pyproject.toml
- Supports PEP 621 project metadata
- Handles package building and publishing
- Manages project plugins and versions
Configuration Support
Projects can be configured through standard PEP 621 metadata:
[project]
name = "example"
version = "0.1.0"
description = "Project description"
requires-python = ">=3.8"
dependencies = [
"requests>=2.25.0"
]
Or through Poetry-specific features:
[tool.poetry]
packages = [{include = "example"}]
requires-poetry = ">=2.0"
[tool.poetry.requires-plugins]
my-plugin = ">1.0"
Core Features
- PEP 621 compliant project metadata
- Lockfile-based dependency resolution
- Virtual environment management
- Build system for distributions
- Package publishing workflow
- Plugin system for extensibility
- Group-based dependency management
- Project-specific Poetry version requirements
Limitations
- Slower dependency resolution than newer tools like uv
- Some non-standard dependency specification features
- Export functionality requires separate plugin installation
Learn More
Last updated on