HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
python-poetry
poetry
Python2018–2025
python-poetry / poetry

poetry

Python packaging and dependency management made easy

76Distinct people
93Mentions
1Explicit recommenders
34.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Python packaging and dependency management made easy

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

There's a bigger problem. Comes down to production issues and the efficiency of using something just because it's cool. I'm a grizzled setuptools guy, for sure. While I think…

b33j0r used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 4:01:40 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year93 dated mentions

Observed mentions: 2018-03-09 15:53:18 UTC to 2025-08-28 11:50:32 UTC.

051015202018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 19 mentions; 6 submissions, 13 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 18 mentions; 3 submissions, 15 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 17 mentions; 0 submissions, 17 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 9 mentions; 1 submissions, 8 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC19613
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC18315
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC808
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC17017
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC12111
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC918
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC707
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC303

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
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 Releases Official Website Documentation Issue Tracker Discord 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.
Read the full README on GitHub

What Hacker News says

12 sources
There is a standardized API for package tools to expose and invoke editable-install functionality [1] which pip install follows, but Poetry didn't implement this API before (I see it does now though as of this past February [2]). In other words, this a more thorough explanation of my point from [3]: > Yes, if you ran poetry install you could get editable mode, but that requires every single end user of your package to install poetry and explicitly invoke a poetry install just for your package. And if someone else's package uses a different package builder, now they need to install and invoke that one. And on and on, and you end up with a six-hundred-line install script because of all the one-off "must install this developer's favorite package manager to use their package" stuff. [1] https://peps.python.org/pep-0660/ [2] https://github.com
Read the rest
In How to create a Python package in 2022
Poetry has a major issue with its lockfiles when working with active projects. It generates a top level dependency listing checksum, which causes any two PRs/branches that independently update the top level requirements to conflict with each other. The related issue, https://github.com/python-poetry/poetry/issues/496, has been open for 4 years with no movement. The other issue with Poetry is that it uses its own pyproject.toml dependency listing format instead of the one standardized in the relevant PEP (https://peps.python.org/pep-0621/). This is understandable for historical reasons (Poetry was first written before this was standardized), but Poetry should have been updated to support the standard format. A relatively minor issue, but the poetry shell command is also a footgun. It's presented as a way to configure your shell to activate
Read the rest
the virtualenv for the project. In reality it's a very slow, barely functional terminal emulator running on top of your terminal, which will cause problems for any programs that assume a working terminal or talk to the tty directly.
In Freezing Requirements with Pip-Tools
Asking people to run `pip install` on anything but `poetry` is an anti-pattern to me. Ruby has had bundler for over a decade and this is the pattern that is working for them as well as npm/yarn. Npm comes with node, Cargo comes with Rust so the debate is somewhat reduced. Since quality of life tools and other soft things are hard to prove, I'll tell my anecdata story point. I sought out any package manager experience in python. I landed on Pipenv which uses pip. It failed to solve the tree. This led me to find poetry and the reason for existing which is exactly my experience. That was 2-3 years ago. https://github.com/python-poetry/poetry#why Combine this with asdf and it aligns with most other languages. asdf + yarn/npm = javascript asdf + poetry = python asdf + bundler = ruby asdf + cargo = rust asdf + mix = elixir as
Read the rest
df + shards = crystal asdf + go.mod (others) = go asdf + composer = php In legacy (don't break anything) mode, there's still no reason to not switch. I export `requirements.txt` with poetry just for pip legacy reasons and it works great. If I just update some scripts, I could avoid it. It's running all the time in CI, it's exercised quite a bit. What's wrong with just using pip and requirements.txt? There's no dev section. In addition, bumping deps is not the same. I have a blog post explaining semver updates to a python dev: https://squarism.com/2021/09/10/sciencing-out-updates/ my strong assertion: Python and Go missed it from the start. That's why it is so confusing. There's no other choice in Rust but Cargo. Rust devs are never confused on how to add a package, semver it. The answer is always Cargo. It's in the tutorial. It's in the book. It's in the culture. I think I've heard that pip might support the pyproject spec, poetry already does. If you want scripts like npm, you can have that too with "taskipy". You don't have to.
In No-op statements syntactically valid only since Python X.Y
For those of us using "pip-compile" to pin our Python dependencies, you may have run into the limitation that it can't generate a single "requirements.txt" for all needed Python versions / OSes [1]. "pip-compile-cross-platform" is meant to be used exactly like "pip-compile", while providing better results. This allows projects to get the benefits of better pinning logic without having to make the more-significant migration to a tool like "poetry" [2] (which is what "pip-compile-cross-platform" uses under-the-hood ) [1] https://github.com/jazzband/pip-tools#cross-environment-usag... [2] https://github.com/python-poetry/poetry/
In Show HN: Pip-compile-cross-platform Python dependency pinning but cross-platform
> How does hatch compare to poetry? Poetry is mainly used for managing an _application_ and its dependencies whereas Hatch is more agnostic to the project type and offers plugin-based functionality for the entire workflow (versioning, tox-like environments, publishing) so you can easily build things other than wheel/sdist, test in a Docker container, etc. Hatch also strictly adheres to standards and eagerly adopts whatever behavior new PEPs dictate while Poetry has a persistent unwillingness to adopt new standards if they are deemed suboptimal (see comments on PEP 621 [1] and PEP 665 [2]) As such, locking support is temporarily blocked https://ofek.dev/hatch/latest/meta/faq/#libraries-vs-applica... You can continue using other tools like Poetry at the same time https://ofek.dev/hatch/latest/meta/faq/#interoperability By the way I very muc
Read the rest
h appreciate the eye for design/UX of Poetry's creator, we also share strong opinions on pipenv :) [1]: https://discuss.python.org/t/5243/12 [2]: https://github.com/python-poetry/poetry/issues/4710#issuecom...
In Show HN: Hatch 1.0.0 – Modern, extensible Python project management

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.