Comment by IshKebab
8 days ago
> python in another realm here as well
uv has more of less solved this (thank god). Night and day difference from Pip (or any of the other attempts to fix it honestly).
At this point they should just deprecate Pip.
8 days ago
> python in another realm here as well
uv has more of less solved this (thank god). Night and day difference from Pip (or any of the other attempts to fix it honestly).
At this point they should just deprecate Pip.
I have never experienced issues with pip, and I’m not sure it’s whether I’m doing something that pip directly supports and avoiding things it doesn’t help with.
I’d really love to understand why people get so mad about pip they end up writing a new tool to do more or less the same thing.
The problems with pip that uv fixes:
1. It's easy to install.
2. It's not dog slow.
3. It automatically sets up venvs.
4. It automatically activates the venv before running commands.
5. It supports a lock file out of the box.
6. It lets you specify the index for private packages. This fixes a major security issue with pip that they continue to ignore.
7. It installs your code in the venv in editable more by default.
8. It lets you install Python tools outside the venv (`uv tool install`).
9. It works reliably.
There's probably more that I've forgotten. If pip had all of that nobody would have felt the need for a rewrite. And if you've never run into any of those issues I guess you either haven't used Python much or didn't consider that there might be a less shitty way to do things.
> 2. It's not dog slow.
That’s very subjective. I have ADHD and I’m very sensitive to things that break my flow, but I don’t run pip frequently while I’m writing code, and the couple extra seconds it takes to do its job don’t bother me that much.
> 3. It automatically sets up venvs.
Remember: explicit is better than implicit.
> 4. It automatically activates the venv before running commands.
Again: explicit is better than implicit.
> 5. It supports a lock file out of the box.
Some (me included) would say it’s a bug, not a feature.
> 6. It lets you specify the index for private packages. This fixes a major security issue with pip that they continue to ignore.
This is good - a lot of organisations concerned with that will block access to PyPI altogether and offer a selected cache for approved dependencies. Alternatively you can declare private dependencies as Git URLs with tags, bypassing the need for a private index.
> 7. It installs your code in the venv in editable more by default.
That’s a nice touch, but goes against the explicit/implicit rule- a different behaviour automatically triggered by something environmental.
> 8. It lets you install Python tools outside the venv (`uv tool install`).
I always recommend not messing with the system’s Python.
> 9. It works reliably.
I’ll need you to elaborate on that. I might be used to the way pip works, but it’s been a while since I had it fail to do something I asked without there being a very good reason (an impossible conflicting requirement).
This brings me to another concern - I wouldn’t want Python development to become more like JavaScript post-npm. Every external dependency you bring in must be justified and understood. This goes for simple ones and especially for complex ones with lots of secondary dependencies. Any external dependency you bring is now your responsibility to manage forever. I’m fine not having to reimplement NumPy’s MSE function or Django’s ORM, but I’ve moved away from things like click because they save me just a little extra work at the cost of having to remember it’s there forever.
> And if you've never run into any of those issues I guess you either haven't used Python much or didn't consider that there might be a less shitty way to do things.
Or, perhaps, I’ve been using Python since 1.5 and have a deep understanding of why things are the way they are, having experimented with different ways, and just learned that new and convenient isn’t always the best in the long term.
1 reply →
Ah yes let's all depend on some startup that will surely change the license at some point.
Very clearly a better option than continuing to use Pip. Even if they do change the license in a few years I will definitely take several years of not being shat on by Pip over the comparatively minor inconvenience of having to switch to an open fork of uv when they rug-pull. If they ever do.
Continuing to use Pip because Astral might stop maintaining uv in future is stupidly masochistic.
pip is really bad though so UV has a long ways to fall before you aren't still net better off :^)