Managing Python dependencies has always been a pain point - from slow installs to version mismatches across projects. uv aims to fix that.
If you’re like me, you love writing code – it’s fun and solves real problems. But too often, we end up wrestling with tooling before we can even start, especially in Python with its dreadful dependency management.
Using pip is like assembling IKEA furniture without instructions. Add a single package, and suddenly you’re battling dependency conflicts, version chaos, and cryptic errors – decoding them feels like reading an ancient language.
I can’t even run a simple script without either polluting my global environment or creating a virtual environment for a one-off script I’ll never run again.
It’s ridiculous how something that should simplify our lives makes it more complicated, especially compared to other ecosystems. Having previously worked with Ruby and its beautiful and mature gem system, I felt like switching to Python downgraded my experience.
zahlman•3mo ago
> I can’t even run a simple script without either polluting my global environment or creating a virtual environment for a one-off script I’ll never run again.
uv doesn't change that. It just handles the virtual environment creation for you (which can also be done in many other ways). It also doesn't fundamentally change the equation of dependency version conflicts (it has the same package base, and the problems with loading multiple versions of the same library are inherent to Python itself) or build errors (Python package metadata isn't designed to specify external dependencies like specific C compilers, but also the problems are becoming rarer over time because developers are just providing more pre-built wheels).
(Bonus: the linked article makes a claim about how pip's dependency resolution works, citing another blog post from 2019. Pip got a new resolver in 2020. Pip will now directly tell you that `boto3==1.4.0` is incompatible with `botocore==1.8.33`, and not install anything, directly addressing the complaint from that post.)
But it's clear from your submission/comment history that you're only here to promote your blogspam with AI-generated blurbs, so I'm really only saying it for the benefit of passers-by, not you.
anastasija2504•3mo ago
Using pip is like assembling IKEA furniture without instructions. Add a single package, and suddenly you’re battling dependency conflicts, version chaos, and cryptic errors – decoding them feels like reading an ancient language.
I can’t even run a simple script without either polluting my global environment or creating a virtual environment for a one-off script I’ll never run again.
It’s ridiculous how something that should simplify our lives makes it more complicated, especially compared to other ecosystems. Having previously worked with Ruby and its beautiful and mature gem system, I felt like switching to Python downgraded my experience.
zahlman•3mo ago
uv doesn't change that. It just handles the virtual environment creation for you (which can also be done in many other ways). It also doesn't fundamentally change the equation of dependency version conflicts (it has the same package base, and the problems with loading multiple versions of the same library are inherent to Python itself) or build errors (Python package metadata isn't designed to specify external dependencies like specific C compilers, but also the problems are becoming rarer over time because developers are just providing more pre-built wheels).
(Bonus: the linked article makes a claim about how pip's dependency resolution works, citing another blog post from 2019. Pip got a new resolver in 2020. Pip will now directly tell you that `boto3==1.4.0` is incompatible with `botocore==1.8.33`, and not install anything, directly addressing the complaint from that post.)
But it's clear from your submission/comment history that you're only here to promote your blogspam with AI-generated blurbs, so I'm really only saying it for the benefit of passers-by, not you.