3 ms·
Gonna put my pessimist hat on and say, great - another python package manager. If it was at least a drop-in replacement for pip, we could switch to it as we did
by lijok 3y ago
Gonna put my pessimist hat on and say, great - another python package manager. If it was at least a drop-in replacement for pip, we could switch to it as we did to ruff just for the speed gains.
We need a permanent solve for python package management, governed by the python steering council.
- raccoonDivider 3y agoIsn't it a replacement for pip? I've seen people on Twitter saying that they migrated very quickly. TFA: > TL;DR: uv is an extremely fast Python package installer and resolver, written in Rust, and designed as a drop-in replacement for pip and pip-tools workflows.
- lijok 3y agoI tested it on my repo, multiple errors, it's not a drop-in replacement. (.venv) lijok@mbp icebreaker % python -m uv pip install --upgrade uv setuptools wheel error: unexpected argument '--upgrade' found tip: to pass '--upgrade' as a value, use '-- --upgrade' Usage: uv pip install [OPTIONS] <PACKAGE|--requirement <REQUIREMENT>|--editable <EDITABLE>> For more information, try '--help'. (.venv) lijok@mbp icebreaker % python -m uv pip install -- --upgrade uv setuptools wheel error: Failed to parse `--upgrade` Caused by: Expected package name starting with an alphanumeric character, found '-' --upgrade ^ I'm sure it can be made to work - but it's definitely not drop in
- deleted 3y ago[deleted]
- drcongo 3y agoWhat happens if you don't prefix with `python -m`? There's no mention of doing that in the blog post and it certainly feels wrong to call a rust package with python -m
- toastercat 3y agoLiterally the first words in the article says that it's a drop-in replacement for pip.
- lijok 3y agoAnd you just took a VC-backed company at its word on a marketing article? I'm sure that's what they're aiming for, but at this time, it's not
- joshSzep 3y agoAnd the following examples show it is not. While it is pretty straightforward to add `uv ` in front of any pip calls, it is not API compatible.
- deleted 3y ago[deleted]
- romantomjak 3y agoGranted they are still working on it, but in the meantime - add a shell alias for uv? alias pip="/usr/bin/uv pip"
- aragilar 3y agoHow does that solve the problem that uv isn't a drop-in replacement? Are they going to implement the whole of pip, warts and all? Unlikely, because even though its in rust, they're getting a fair bit of speedup by making assumptions (see their ruff benchmarks, most of pylint isn't implemented), and as we've seen with both poetry and pipenv, those assumptions break down. pixi may get somewhat closer (given their experience with conda, and so familiarity with workflows and needs outside webdev), but I suspect uv will only further add issues and confusion to Python installs (especially if people decide to try aliasing and things break).
- romantomjak 3y agoI jumped to conclusions in my previous comment, but that was based on a personal experience. Realistically, I've only ever needed 2 commands: `pip freeze > requirements.txt` and `pip install -r requirements.txt`. They don't need 100% API compatibility to deliver value, just "good enough". 80/20 rule and all that.
- throw12344612 3y agoThe PSF has been asleep at the wheel for the past 10-15 years. The python packaging ecosystem has only gotten more fragmented under their stewardship.