Yet Another Python Pkg Manager: uv
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.