Email or username:

Password:

Forgot your password?
Rachael Ludwick

What python package manager should one be using? #python

Anonymous poll

Poll

pdm
1
2.9%
poetry
5
14.7%
uv
13
38.2%
pip and venv (only standard library)
15
44.1%
34 people voted.
Voting ended 9 November at 22:26.
18 comments
Rachael Ludwick

Oh god. Searching for what's out there and realizing I needed like a 12 option poll to even cover popular ones. Β―\_(ツ)_/Β―

Andres "πŸ§ πŸ›βœŠ" Salomon

@r343l I feel like "write my own from scratch" should've been the first poll option? πŸ™ƒ

Rachael Ludwick

@Andres4NY Lol. Relatedly, the reason I am even noticing this because I have a repo that builds a docker image against debian testing (trixie) which just got python 3.12.7 which changed a signature on an internal function on an argparse class. Which pdm overrides with the old signature.

I wonder how painful just using pipenv would be? SIGH.

Andres "πŸ§ πŸ›βœŠ" Salomon

@r343l mostly I just use pip and venv for everything (that isn't already packaged by Debian), but I'm also not trying to ship anything across systems; I only ever find myself doing that for game that my kids use or something

Rachael Ludwick

@jacob Strongly tempted to switch to uv because it seems the fastest path to unblocking my docker build with minimal other changes.

jacoBOOian πŸ‘»

@r343l I’d really encourage it, it’s really significantly better that everything out there, with almost no downsides.

Rachael Ludwick

@jacob the only downsides I can see (just off that blog) are:

- no cli run scripts from pyproject.toml. easily dealt with but mildly annoying
- we just finished moving from poetry to pdm

but pdm has a blocking issue and my main workaround is to use pyenv in my docker image (for running tests with reliable/fixed R and other binary deps) instead of system python at which point I have to change a lot anyway.

Chris is.

@r343l @jacob if you are using pdm to package your library, you don't need to change that to use uv; it'll use PDM's build system just fine.

Nearly every `pdm <foo>` command can be rewritten as `uv foo`.

Rachael Ludwick

@offby1 @jacob well ... in this case pdm is broken with system python on latest debian testing (trixie) and I can't move to debian stable for other reasons. I saw that one could swap uv in as the backend for pdm but it's not clear to me that it wouldn't still be broken.

Phil in SF

@r343l *should* makes this way too loaded for me. We went with poetry 4 years ago because pip didn't support lock files. But PDM and pipenv do now. Another team here uses PDM and likes it a lot. One of the companies we have outsourced dev to dislikes poetry because "it puts files in the wrong place". My default is poetry, but it's not a strongly held preference.

Rachael Ludwick

@kingrat Yeah when poetry came out I like it a lot. Our team has moved over to pdm mostly but just hit a blocking bug (see other replies) that the only way to workaround is rip out pdm or downgrade python to 3.12.6 (from 3.12.7).

Phil in SF

@r343l Ooof. That over-writing seems bad...

wiredog

@r343l As someone new-ish to Python, use what works best for you.

At work we started out using pip and venv, but the other teams used Conda, which basically wraps pip and does a few other things, so that’s what we use. It works, it’s Good Enough. But if something else works better for you use that.

Rachael Ludwick

@wiredog Part of the challenge is they all are Good Enough until they aren't (in this case ran into a blocking issue with pdm that now has me seriously considerng uv).

Eric Gerlach

@r343l I thought my vote for pdm would be in the minority, but I expected poetry to be out ahead.

Go Up