Python packaging and dependency management made easy (by python-poetry)

Poetry Alternatives

Similar projects and alternatives to Poetry

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better Poetry alternative or higher similarity.

Poetry reviews and mentions

Posts with mentions or reviews of Poetry. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-22.
  • Vent: I'm tired of the 1001 libraries of virtual environments.
    8 projects | reddit.com/r/Python | 22 Nov 2022
    for most projects, i use poetry, which i consider the best https://python-poetry.org
  • Running Serverless ML on AWS Lambda
    3 projects | dev.to | 21 Nov 2022
    For dependency management, we will use Poetry. Why not pip? Because Poetry is better in every aspect.
  • Publish Webhooks From Your FastAPI API With Convoy
    2 projects | dev.to | 21 Nov 2022
    ℹ️ You may use a different virtual environment manager like Pipenv or poetry.
  • Would this project be okay to show employers
    4 projects | reddit.com/r/Python | 20 Nov 2022
    There's no information on what packages are required. In order to run your python I would have to first to go into the code to see which libraries I need to install. A small section in your readme listing which packages you're using and their versions would be fine, but if it were me I would look into using a package manager like Poetry.
  • ABI compatibility in Python: How hard could it be?
    5 projects | news.ycombinator.com | 19 Nov 2022
    Poetry is currently not useful for extensions: https://github.com/python-poetry/poetry/issues/2740
  • We've drastically simplified this GitHub Action for v2. This is no longer a Docker action that runs as its own container, it's just a simplified way for you to install poetry... Sponsor this project: https://www.buymeacoffee.com/
    2 projects | reddit.com/r/programmingcirclejerk | 16 Nov 2022
    description: "An action to run https://github.com/python-poetry/poetry"
  • Ask HN: Programming Without a Build System?
    15 projects | news.ycombinator.com | 12 Nov 2022
    > trying to build a lifeboat for Twitter, Python works, but then modules require builds that break.

    > Alternatively, any good resources for the above?

    There are many, _unbelievably many_ writeups and tools for Python building and packaging. Some of them are really neat! But paralysis of choice is real. So is the reality that many of the new/fully integrated/cutting edge tools, however superior they may be, just won't get long term support to catch on and stay relevant.

    When getting started with Python, I very personally like to choose from a few simple options (others are likely to pipe up with their own, and that's great; mine aren't The One Right Way, just some fairly cold/mainstream takes).

    1. First pick what stack you'll be using to develop and test software. In Python this is sadly often going to be different from the stack you'll use to deploy/run it in production, but here we are. There are two sub-choices to be made here:

    1.a. How will you be running the _python interpreter_ in dev/test? "I just want to use the Python that came with my laptop" is fine to a point, but breaks down a lot sooner than folks expect (again, the reasons for this are variously reasonable and stupid, but here we are). Personally, I like pyenv (https://github.com/pyenv/pyenv) here. It's a simple tool that builds interpreters on your system and provides shell aliases to adjust pathing so they can optionally be used. At the opposite extreme from pyenv, some folks choose Python-in-Docker here (pros: reproducible, makes deployment environments very consistent with dev; cons: IDE/quick build-and-run automations get tricker). There are some other tools that wrap/automate the same stuff that pyenv does.

    1.b. How will you be isolating your project's dependencies? "I want to install dependencies globally" breaks down (or worse, breaks your laptop!) pretty quickly, yes it's a bummer. There are three options here: if you really eschew automations/wrappers/thick tools in general, you can do this yourself (i.e. via "pip install --local", optionally in a dedicated development workstation user account); you can use venv (https://docs.python.org/3/library/venv.html stdlib version of virtualenv, yes the names suck and confusing, here we are etc. etc.), which is widely standardized upon and manually use "pip install" while inside your virtualenv, and you can optionally integrate your virtualenv with pyenv so "inside your virtualenv" is easy to achieve via pyenv-virtualenv (https://github.com/pyenv/pyenv-virtualenv); or you can say "hell with this, I want maximum convenience via a wrapper that manages my whole project" and use Poetry (https://python-poetry.org/). There's no right point on that spectrum, it's up to you to decide where you fall on the "I want an integrated experience and to start prototyping quickly" versus "I want to reduce customizations/wrappers/tooling layers" spectrum.

    2. Then, pick how you'll be developing said software: what frameworks or tools you'll be using. A Twitter lifeboat sounds like a webapp, so you'll likely want a web framework. Python has a spectrum of those of varying "thickness"/batteries-included-ness. At the minimum of thickness are tools like Flask (https://flask.palletsprojects.com/en/2.2.x/) and Sanic (like Flask, but with a bias towards performance at the cost of using async and some newer Python programming techniques which tend, in Python, to be harder than the traditional Flask approach: https://sanic.dev). At the maximum of thickness are things like Django/Pyramid. With the minimally-thick frameworks you'll end up plugging together other libraries for things like e.g. database access or web content serving/templating, with the maximally-thick approach that is included but opinionated. Same as before: no right answers, but be clear on the axis (or axes) along with you're choosing.

    3. Choose how you'll be deploying/running the software, maybe after prototyping for awhile. This isn't "lock yourself into a cloud provider/hosting platform", but rather a choice about what tools you use with the hosting environment. Docker is pretty uncontentious here, if you want a generic way to run your Python app on many environments. So is "configure Linux instances to run equivalent Python/package versions to your dev/test environment". If you choose the latter, be aware that (and this is very important/often not discussed) many tools that the Python community suggests for local development or testing are very unsuitable for managing production environments (e.g. a tool based around shell state mutation is going to be extremely inconvenient to productionize).

    Yeah, that's a lot of choices, but in general there are some pretty obvious/uncontentious paths there. Pyenv-for-interpreters/Poetry-for-packaging-and-project-management/Flask-for-web-serving/Docker-for-production is not going to surprise anyone or break any assumptions. Docker/raw-venv/Django is going to be just as easy to Google your way through.

    Again, no one obvious right way (ha!) but plenty of valid options!

    Not sure if that's what you were after. If you want a "just show me how to get started"-type writeup rather than an overview on the choices involved, I'm sure folks here or some quick googling will turn up many!

  • What’s the best high-level companion to Rust?
    7 projects | reddit.com/r/rust | 11 Nov 2022
    When the ecosystem has had time to make equivalent packages, Rust's packages are more convenient, if for no other reason than Cargo is more convenient than Python's closest runner-up, Poetry.
  • Managing 100+ python venv's
    2 projects | reddit.com/r/devops | 8 Nov 2022
    Using something like pipx, or pipenv will help you build the application to be self contained in a virtual environment with all it's dependencies. There are lots of options of tools to do this. I wrote an article on this a while back, and I included some other popular options like Poetry.
  • Frustrated with a mess on my Mac((
    2 projects | reddit.com/r/learnpython | 8 Nov 2022
    Also, do not install ANY Python packages at a global level except Poetry, which you will need in the future to do package management. You want to create "virtualenvs", one for each project, and then install just the Python packages you need in the specific virtualenv for the one project. When you screw up the virtualenv, usually by installing some huge dependency you later decide you don't need, you simply trash the virtualenv and start again.
  • A note from our sponsor - Sonar
    www.sonarsource.com | 29 Nov 2022
    Sonar helps you commit clean code every time. With over 225 unique rules to find Python bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work. Learn more →


Basic Poetry repo stats
6 days ago
Truly a developer’s best friend
Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.