Poetry, first released in 2018, is a tool that tries to bring Python dependency management and packaging into a single coherent workflow. Its documentation states that “Poetry is a tool for dependency management and packaging in Python”, letting developers declare the libraries a project depends on and having Poetry install and update them (https://python-poetry.org/docs/).
Two features define Poetry’s approach. The first is a lockfile, which records the exact resolved versions of every dependency so that installations are reproducible across machines and team members, preventing the inconsistencies that arise when versions drift over time (https://python-poetry.org/docs/). The second is centralizing configuration in pyproject.toml, the standard configuration file at the heart of a Poetry project, where dependencies and project metadata are declared.
Poetry also keeps projects isolated. The documentation notes that Poetry “will always work isolated from your global Python installation”, creating and managing a virtual environment per project so that one project’s packages do not interfere with another’s (https://python-poetry.org/docs/).
Poetry arrived as part of a broader standardization effort. PEP 621 established a tool-agnostic [project] table in pyproject.toml for core metadata, with the stated aim of providing a “tool-agnostic” definition that makes transitions between build systems easier (https://peps.python.org/pep-0621/). Poetry’s adoption of this declarative, single-file model is part of the gradual convergence of Python packaging around pyproject.toml.