Poetry: Python packaging and dependency management made easy
Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.
Poetry replaces setup.py, requirements.txt, setup.cfg, MANIFEST.in and Pipfile with a simple pyproject.toml
based project format.
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
[project]
name = "my-package"
version = "0.1.0"
description = "The description of the package"
readme = "README.md"
license = "MIT"
license-files = ["LICENSE"]
# No Python upper bound for package metadata
requires-python = ">=3.9"
authors = [
{ name = "Sébastien Eustace", email = "sebastien@eustace.io" },
]
# Keywords (translated to tags on the package index)
keywords = ["packaging", "poetry"]
dependencies = [
# equivalent to ^3.8.1 with semver constraints
"aiohttp (>=3.8.1,<4.0.0)",
# dependency with extras
"requests[security] (>=2.28,<3.0)",
# version-specific dependency with prereleases allowed (see below)
"tomli (>=2.0.1,<3.0.0) ; python_version < '3.11'",
# git dependency with branch specified
"cleo @ git+https://github.com/python-poetry/cleo.git@main",
]
[project.urls]
repository = "https://github.com/python-poetry/poetry"
homepage = "https://python-poetry.org"
# Scripts are easily expressed
[project.scripts]
my_package_cli = "my_package.console:run"
[project.optional-dependencies]
# optional dependency to be installed via 'poetry install -E my-extra'
my-extra = ["pendulum (>=3.1.0,<4.0.0)"]
[tool.poetry.dependencies]
# Python upper bound for locking
python = ">=3.9,<4.0"
# Version-specific dependencies with prereleases allowed
tomli = { allow-prereleases = true }
# Dependency groups are supported for organizing your dependencies
[dependency-groups]
dev = ["pytest (>=7.1.2,<8.0.0)", "pytest-cov (>=3.0,<4.0)"]
docs = ["Sphinx (>=5.1.1,<6.0.0)"]
# ...and can be installed only when explicitly requested
# via 'poetry install --with docs'
[tool.poetry.group.docs]
optional = true
# Alternatively, you can use Poetry specific syntax
# to specify dependency groups
[tool.poetry.group.lint]
optional = true
[tool.poetry.group.lint.dependencies]
ruff = ">=0.10.0"
Installation
Poetry supports multiple installation methods, including a simple script found at install.python-poetry.org. For full installation instructions, including advanced usage of the script, alternate install methods, and CI best practices, see the full installation documentation.
Documentation
Documentation for the current version of Poetry (as well as the development branch and recently out of support versions) is available from the official website.
Contribute
Poetry is a large, complex project always in need of contributors. For those new to the project, a list of suggested issues to work on in Poetry and poetry-core is available. The full contributing documentation also provides helpful guidance.
Resources
Related Projects
- poetry-core: PEP 517 build-system for Poetry projects, and dependency-free core functionality of the Poetry frontend
- poetry-plugin-export: Export Poetry projects/lock files to foreign formats like requirements.txt
- poetry-plugin-bundle: Install Poetry projects/lock files to external formats like virtual environments
- install.python-poetry.org: The official Poetry installation script
- website: The official Poetry website and blog
Supporters
Thanks to JetBrains for supporting us with licenses for their tools.
Release files for poetry 2.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| poetry-2.4.3.tar.gz | 3.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| poetry-2.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:3.6 MB
Release files / poetry-2.4.3.tar.gz
| Download URL | poetry-2.4.3.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5687e723512332ffe2469f81624d8c9ecbe69c16eb84889decbd85ecfc282e7
|
|
BLAKE2b-256 checksum How to use checksums |
504904996ab642335863f7feb74fb81ddcaf633f6168d00dc0bc27da46bed539
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency logRelease files / poetry-2.4.3-py3-none-any.whl
| Download URL | poetry-2.4.3-py3-none-any.whl |
|---|---|
| Size | 293.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
79ce90140d0dcded93bab2df97fdd26b433f6949d834b4ac7bb1951aaca65c2f
|
|
BLAKE2b-256 checksum How to use checksums |
63d5ee2ab176d0ee8c7f7e80af401812ca750576cf929f64cd9066b90379fd49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency log