Yet Another Python Pkg Manager: uv

Posted on Nov 23, 2024

I am frustrated and delighted to have started using yet another Python package manager: uv. While I could tout the usability or speed of uv, what I find most remarkable is that it’s new to this world.

Python has been around since Guido started working on it in 1991, but it’s definition of “batteries included” hasn’t included a package manager. Instead, Python has developed official tooling (pip, virtualenv) that could be kludged together, and generations of third-party package managers have evolved (pipenv, poetry, hatch, rye, pdm, etc).

I switched to uv because it drops in to my existing workflow, but, to be frank, I’ve little faith it’s going to stick longterm. As a third party library implemented in an entirely different language, uv likely to be superseded when the next hot thing in Python package management rolls around. I wish Python would bless a full-feature package manager similar to Node adopting npm, but I won’t hold my breath. (hatch someday?)

Either way, shoutout to Astral for their “next-gen” Rust-based Python tooling. Both uv and ruff provide modern, light-speed solutions to niches largely unfilled since the advent of Python.