Skip to main content

Python dependency management and packaging made easy.

Project description

Poetry: Python packaging and dependency management made easy

Poetry Stable Version Pre-release Version Python Versions Download Stats Discord

Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.

Poetry Install

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.

JetBrains logo.

Project details


Release history Release notifications | RSS feed

This version

2.4.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poetry-2.4.1.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poetry-2.4.1-py3-none-any.whl (292.3 kB view details)

Uploaded Python 3

File details

Details for the file poetry-2.4.1.tar.gz.

File metadata

  • Download URL: poetry-2.4.1.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for poetry-2.4.1.tar.gz
Algorithm Hash digest
SHA256 189399b80347ecf908244b2564a7b1d92b648fa1fe2a204888f94a472fec0cac
MD5 e9bf7d53aecfbd246540bcb37994387c
BLAKE2b-256 c002a309e58943f77f1947e4a658a9606933ab4a7b9f040025f4e25daf5fafbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for poetry-2.4.1.tar.gz:

Publisher: release.yaml on python-poetry/poetry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file poetry-2.4.1-py3-none-any.whl.

File metadata

  • Download URL: poetry-2.4.1-py3-none-any.whl
  • Upload date:
  • Size: 292.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for poetry-2.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a91f13279a3c9add0d12c5ca5c7cb173622930a5c8272fee68c751cb5c72f951
MD5 0301987270789667bb9e234e368db274
BLAKE2b-256 483f4799a3cfbc7b1731468c446daec8b13939d539bfe06b5a68c3ee73a8835d

See more details on using hashes here.

Provenance

The following attestation bundles were made for poetry-2.4.1-py3-none-any.whl:

Publisher: release.yaml on python-poetry/poetry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page