A modern Python package and dependency manager that manages venvs, lockfiles and builds based on PEP 621 and PEP 517 metadata.
python-poetry/poetry
Python packaging and dependency management tool that declares, locks and installs project dependencies through a single pyproject.toml file.
Open-source alternative to:pip
- Stars
- 34,368
- Forks
- 2,577
- Open issues
- 622
- Last commit
- 4 days ago
What is it?
Poetry helps Python developers declare, manage and install the dependencies of their projects so that the same environment can be reproduced on other machines. It replaces the usual mix of setup.py, requirements.txt, setup.cfg, MANIFEST.in and Pipfile with a single pyproject.toml file that describes project metadata, dependencies, scripts and build configuration.
Dependencies can be grouped (for example dev, docs or lint) and installed selectively, and optional extras can be enabled at install time. Dependencies may come from PyPI, Git repositories or local paths, and version constraints use semver-style syntax. Poetry also acts as a build backend through poetry-core, so the same tool can package a project for publishing.
Key features
- 01Declares project metadata and dependencies in a single pyproject.toml file.
- 02Manages dependency groups and optional extras, installable on demand.
- 03Supports dependencies from PyPI, Git repositories and local paths.
- 04Acts as a PEP 517 build backend for packaging and publishing.
Use cases
- Starting a new Python library or application with a standard project layout.
- Keeping dependency versions reproducible across development and CI environments.
- Publishing a Python package to PyPI from the same project configuration.
Quick start
- 1
Run the official install script from the README
- 2
Declare your project's dependencies in pyproject.toml
Topics
FAQ
- What is poetry?
- Python packaging and dependency management tool that declares, locks and installs project dependencies through a single pyproject.toml file. Poetry helps Python developers declare, manage and install the dependencies of their projects so that the same environment can be reproduced on other machines. It replaces the usual mix of setup.py, requirements.txt, setup.cfg, MANIFEST.in and Pipfile with a single pyproject.toml file that describes project metadata, dependencies, scripts and build configuration.
- Is poetry free to use? What license does it have?
- poetry is open source under the MIT license. Check the license terms before using it in commercial products.
- Is poetry still maintained?
- Actively maintained. The last commit to poetry was on Nov 2, 2026.
- What can I use poetry for?
- Starting a new Python library or application with a standard project layout. Keeping dependency versions reproducible across development and CI environments. Publishing a Python package to PyPI from the same project configuration.
- How do I install poetry?
- Run the official install script from the README Declare your project's dependencies in pyproject.toml
- Where can I get poetry?
- The source code and installation instructions are on GitHub: https://github.com/python-poetry/poetry
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An extremely fast Python package and project manager written in Rust, replacing pip, virtualenv, pyenv, pipx and more.
A simple tool for building and publishing pure-Python packages and modules to PyPI with minimal configuration.
Dependency manager for PHP that declares, installs and updates project packages from Packagist.
Fast, disk-efficient Node.js package manager that links packages from a shared content-addressable store, with strict dependency isolation and monorepo support.
A CLI that records each package.json dependency override in an appendix and scans for security issues, so overrides can be maintained safely.