7 ms·
uv downloads overtake Poetry for Wagtail users
- est 2y agoif an app or tool has a huge speed advantage, then I'd choose it no matter what.
- XorNot 2y agoIt's the integrated python version management which sold me. Took a huge chunk of complexity out of bootstrapping projects which I was otherwise handling myself.
- mijoharas 2y agoThis is the one thing that took a while for me to get to grips with. I tend to use `asdf` for my python version management, which I want to continue to use since I use it for most other languages. It'd be nice if we could have a shim for `uv` that allows it to play nice with `asdf` (there is an `asdf-uv` but seems to be about installing different versions of `uv` when instead I want to install different versions of python _via_ uv).
- adammarples 2y agoI can't see any reason really to keep using asdf for python when a better alternative now exists, unless you just don't want to learn the new syntax?
- marmarama 2y agoIf all you do is write Python then sure, but for the rest of us that have to run code written in 7 different languages within our project, written by 7 different teams, playing nicely with asdf is non-negotiable. I've had it with version managers that only target a single language or tool, the cognitive load is too high if there's more than a couple of languages in the mix. What would be really nice is an asdf-like single package manager with language-specific plugins. That would save me a bunch of headaches.
- sureglymop 2y agoThe tool mise-en-place seems to have this. It is a replacement for asdf that I think can be used as a drop in replacement (compatible CLI interface).
- jdxcode 2y agoYes you can sync versions python versions bidirectionally with uv and mise. I intend to make further deeper integrations with uv where possible directly into mise core in order to offload python complexity out of mise and into uv where possible.
- sureglymop 2y agoThank you for creating mise! My only gripe with it is that it can do so much that I keep having to revisit certain parts of the docs :) but it is a good thing, it's nice if a tool takes care of many related little annoyances. I made a cheat sheet for myself and that helps.
- heisig 2y agoI recently switched to uv, and I cannot praise it enough. With uv, the Python ecosystem finally feels mature and polished rather than like a collection of brittle hacks. Kudos to the uv developers for creating such an amazing piece of software!
- Wulfheart 2y agoOk, you convinced me to give it a try. Tbh, I am a casual user of python and I don't want to touch it unless I have a damn good reason to use it.
- mlnj 2y agoYou do not need a damn good reason for this. Just try it out on a simple hello world. Then try it out on a project already using poetry for eg. uv init uv sync and you're done I'd say if you do not run into the pitfalls of a large python codebase with hundreds of dependencies, you'll not get the bigger argument people are talking about.
- stavros 2y agoI don't think you need to sync, do you? It always just does it when running. That said, I do wish uv had `uv activate`. I like just working in the virtualenv without having to `uv run` everything.
- Euphorbium 2y agoUv should replace pip for all I care.
- ThibWeb 2y agoWell, seems like 100% what’s going to happen (for the majority of Wagtail users at least) if the current trend continues. I’m not sure if that’s a good thing to be frank. But we’ll have to adjust regardless.
- darkfloo 2y agoAs a semi casual user of python that had to battle w/ dependency management recently, can you elaborate on why that would not be a good thing ? I thought about switching our project to uv but could not find the time necessary
- jonatron 2y agoYou may be overestimating the amount of time it takes to switch to uv.
- blooalien 2y agoTook me all of about 10 seconds after I decided to switch from Poetry and PipX. Been just learning it bit by bit as I go along and been really pleased with it thus far.
- ThibWeb 2y agoSure – and I think it’s certainly proving to be a good thing so far! My concerns are more longer-term. I see two primarily: (1) As uv’s governance is driven by a for-profit company, I see incentives that will eventually compromise on its benefits. (2) Python packaging has historically been very fragmented, and more recently there’s been lots of work on standardization. That work will be impacted when users massively shift to one package installer. Neither of those things are clear negatives, but they’re worth being aware of.
- IshKebab 2y agoNot a surprise. I said it before and I'll say it again, all the competing projects should just shut up shop for the good of Python. uv is so much better it's like pushing penny farthings after the safety bike has been invented.
- nikisweeting 2y agoThat's rough for all the creators of poetry, pdm, pipenv, etc. to hear. They put in a ton of great work over the last decade, but I fear you may be right.
- alwyn 2y agoI quite really like pdm! I can see why maybe poetry but especially pipenv might be replaced with uv, but what's the value of uv over pdm beyond performance? It ticks all my boxes otherwise.
- ZuLuuuuuu 2y agoI am feeling the same way about PDM, it works very well, easy to configure and checks all the boxes feature-wise.
- francasso 2y agoBeyond performance? Performance!
- quickslowdown 2y agoI came to uv from pdm, and the only reason I switched is the sheer speed and simplicity of uv. Pdm is such a great utility, and it can use uv as the package solver, but uv still has it beat on raw speed, and it feels simpler to use (whether or not it actually is).
- fnord123 2y ago>but what's the value of uv over pdm beyond performance uv is not written in python so it doesn't suffer from the bootstrap problem of having a python version installed to begin using it. Users (new and even experienced) get confused and annoyed when they try to use python tooling in the same venv as their application instead of using pipx. People also get confused and annoyed if they use mac and run `brew upgrade` and find themselves with python 3.13 or just any version that is new (yes we can pin to python@3.11 or whatever) so pyenv is a good option. So now you have pdm, pipx, and pyenv to manage all this stuff. With uv all this hassle goes away.
- emblaegh 2y agoMan, I’m so jealous of insane praise that uv (and most other astral tools) gets. I don’t think ever seen anything so unanimously lauded around here.
- orthoxerox 2y agoTailscale?
- emblaegh 2y agoIt’s not really on my radar, but I’d be curious to know what other pieces of software get similar respect from their communities.
- SilverSlash 2y agoGuess people here don't talk much about cargo. I wouldn't be surprised to learn that cargo inspired uv. Rust with cargo showed for the first time that tooling _can_ be good, even for systems programming languages.
- BiteCode_dev 2y agouv has been introduced as cargo for python: https://astral.sh/blog/uv-unified-python-packaging https://astral.sh/blog/uv-unified-python-packaging
- weberer 2y agoLike with any social media site, you also have to consider the possibility that not all comments are 100% organic.
- emblaegh 2y agoI’ve seen fishy looking engagement in hn before, but I’m inclined to think uv’s praise is genuine. It reflects the collective relief of seeing an extremely long and painful journey finally come to an end (hopefully).
- 2y ago
- aosaigh 2y agoI’m still using pip, what am I missing?
- OtherShrezzing 2y agoPoetry and uv both offer better dependency management, and project isolation out of the box. If you work in a team, or on more than one python project, then it's worth spending a day to install & adopt either one of these systems.
- KORraN 2y agoBoth dependency management and project isolation are available in a standard Python 3 installation, also out of the box, without 3rd party tool dependency - `pip` and `python3 -m venv`. Admittedly, they work slower, but fast enough for me, especially that I do not run these commands every hour.
- oblio 1y agoOnly if you need a single Python installation and you never install any tools written in Python.
- oguz-ismail 2y ago[flagged]
- drexlspivey 2y ago1) Deterministic environments 2) not having to manage python installations 3) 100x speed boost
- stavros 2y agohttps://news.ycombinator.com/item?id=43386807 https://news.ycombinator.com/item?id=43386807
- TOMDM 2y agoFor the uninitiated what is the benefit of UV over pip? I've been working with pip for so long now that I barely notice it unless something goes very wrong.
- jonatron 2y agoFaster.
- prashnts 2y agoI can't stress how fast it is when using on resource constrained envs like a Pi Zero. I intend to use system python there but previously poetry will simply crash the whole Pi while installing itself.
- maratc 2y agoOk, and what's the advantage for the people who don't have "my pip is too slow" problem?
- nicolasp 2y agoWait times are in the order of tens of milliseconds instead of seconds. That makes a massive difference in how nice uv is to use vs pip.
- maratc 2y agoThat’s just the same “my pip is too slow” problem which some people don’t have. I work in a place with 200 developers, and 99% of pip usage is in automated jobs that last an hour. Shaving a couple seconds off that will not provide any tangible benefit. However moving 200 people from a tool they know to one they don’t comes at a rather significant cost.
- dagw 2y agoFor what it's worth uv is fully compatible with pip. just replace 'pip --foo bar' with 'uv pip --foo bar'. One project I'm working on is 100% 'classic' pip based with no plans of moving, but I still use uv when working on it as it is completely transparent. Uv manages my venvs and python versions and makes things like switching between different versions of python and libraries much smoother, and I can still use the same pip commands as everybody else, it's just that all my pip commands run faster.
- zoobab 2y agoPlenty of packages still fail trying to spawn cmake, gcc and al. UV does not solve all the hard problems. Maybe switch to Pixi?
- Vaslo 2y agoSwitch to who?
- KingMob 2y agoGoogle's not that broken yet: https://pixi.sh/latest/ https://pixi.sh/latest/
- sureglymop 2y agoThat (main) page doesn't mention python once, so personally I was immediately wondering if this is an alternative to tools like uv or more generally tools like mise and asdf. It really isn't that clear so could you try to elaborate a bit?
- tasuki 2y agoHah, your comment persuaded me to look at that page, and honestly I also can't tell what it even is. I think it's supposed to be an alternative to `mise` and `asdf`, but it mostly mentions various Python tools? And doesn't seem to have an overview of what's available to install through Pixi? Then I clicked a link and got to https://prefix.dev/ https://prefix.dev/ ... > pixi is a fast software package manager built on top of the existing conda ecosystem. Spins up development environments quickly on Windows, macOS and Linux. Oh, build on top of conda. I am so going to stay the hell as far away from that as possible!
- KingMob 2y agoGoogle works for you too, friend.
- sureglymop 1y ago
- technopol 2y agouv sounds great! For those still using Python v2, how well does it work? pip used to be a pain when having to manage both Python v2 and v3 projects and tools.
- rglullis 2y agoIf you are still on 2.7, packaging is the least of your problems
- stavros 2y agoUnfortunately, I don't think many things nowadays are tested with a 15-year-old version of a language. I was one of the last holdouts, preferring to keep 2.7 support if it wasn't too much hassle, but we have to move on at some point. Fifteen years is long enough support.
- user9999999999 2y agois it me or is there a new python dependency manager every year?
- nikisweeting 2y agonah other than uv it's just poetry, pdm, and pipenv over last decade, and uv is so dominant I don't think anyone else will try making another one for a while
- calmoo 2y agouv is definitely the final one, it's 100x better.
- jessekv 2y agoThings were bad and really needed fixing. Several attempts were made.
- yu3zhou4 2y agoWell deserved, I wish more cloud providers have it preinstalled
- globular-toast 2y agoBeen using Python for 20 years and tried just about every tool related to packaging over the years. The only ones that worked well (IMO) were pip, pip-tools and venv. uv finally replaces all of them. But being written in Rust means I'm having to also finally get somewhat proficient in Rust. Can any Rust developers comment on the quality of the uv codebase? I find it surprisingly procedural in style, with stuff like hundreds of `if dry_run` type things scattered throughout the codebase, for example. Is this normal Rust style?
- ZuLuuuuuu 2y agoPyCharm also added uv support in their latest versions. We recently switched to PDM in our company because it worked very well in our tests with different package/dependency managers. Now I am rethinking if we should switch to uv while PDM usage is still not very wide-spread in our company. But PDM works very well, so I am not sure whether to keep using it.
- ThibWeb 2y agoWith the caveat I only have the package installers usage data for Wagtail downloads – pdm usage has fallen off a cliff, from 0.2% of downloads in January 2024, to 0.01% in January 2025. Roughly matches the uptake of uv. Doesn’t make pdm bad in itself but that means there’ll be fewer pdm users around to report bugs, potentially fewer contributors to it too, fewer resources, etc.
- ZuLuuuuuu 2y agoIndeed, on one hand PDM works great, but on the other hand we wouldn't want to choose a package manager which might not be maintained anymore after a few years because there are just not many users of it.
- chippiewill 2y agoBack when PDM was still pushing __pypackages__ for standardisation I think PDM made sense, but honestly I don't think it adds anything over uv and is just going to be slower for the most part.
- karel-3d 2y agoI don't understand a word of the headline, I guess I am not the intended audience.
- qwertox 2y agoI've read so much positive feedback about uv, that I'd really like to use it, but I'm unsure if it fits my needs. I was heavily invested into virtualenv until I had to upgrade OS versions, which upgraded the Python versions and therefore broke the venvs. I tried to solve this by using pyenv, but the need of recompiling Python on every patch wasn't something which I would accept, specially in regards to boards like Raspberry Pis. Then I tried miniconda which I initially only liked because of the precompiled Python binaries, and ultimately ended up using pyenv-managed miniforge so that I could run multiple "instances" of miniforge and therefore upgrade miniforge gradually. Pyenv also has a plugin which allows to set suffixes to environments, which allows me to have multiple miniforges of the same version in different locations, like miniforge-home and miniforge-media, where -home has all files in the home dir and -media has all files on a mounted nvme, which then is where I put projects with huge dependencies like CUDA inside, not cluttering home, which is contained in a VM image. It works really great, Jupyter and vscode can use them as kernels/interpreters, and it is fully independent of the OS's Python, so that OS upgrades (22.04 -> 24.04) are no longer an issue. But I'm reading about all these benefits of uv and wish I could use it, but somehow my setup seems to have tied my hands. I think I can't use uv in my projects. Any recommendations? Edit: Many of my projects share the same environment, this is absolutely normal for me. I only create a new environment if I know that it will be so complex that it might break things in existing environments.
- secondcoming 2y agoThe python ecosystem has become a disaster. Even reading your post gave me a headache.
- the_mitsuhiko 2y agoI’m a bit confused why uv is not an option for you. You don’t need to compile Python, it manages virtualenvs for you, you can use them with Jupyter and vscode. What are you missing?
- qwertox 2y agoSo the only difference is that Conda also isolates "system" libraries (like libcublasLt.so), or does uv also do this? It's not that uv is not an option for me, I made this move to miniforge before uv was on my radar because it wasn't popular, but I'm still at a point where I'm not sure if uv can do what I need.
- bsdz 2y agoI feel for me, at least one nice thing about poetry over uv is, that if I have an issue or feature extension, I can just write my own plugin in pure Python. With uv, I'd need to learn Rust in addition to python/c/c++/etc. I wonder what it would take to get poetry on par with uv for those who are already switching to it? Poetry is definitely very slow downloading multiple versions of packages to determine dependencies (not sure how uv works around this?). Does uv have a better dependency checker algorithm?
- wiseowise 2y ago> I wonder what it would take to get poetry on par with uv Different laws of physics, to start with.
- rmholt 2y agoFor me personally the killer uv feature is pyenv integration, which poetry doesn't do
- bsdz 2y agoInteresting - thanks. I use virtual environments and each has its own python version tied to it. Not sure if pyenv is useful to me but who knows perhaps one day. Good to know uv supports pyenv.
- chippiewill 2y agoIn this day and age you don't usually have to download the packages to resolve the dependencies as PyPI can usually expose it (unless you need to install from sdist which is less common these days). Dependency resolution is slow because it's computationally very expensive. Because uv is written in Rust the resolution is just much much faster. IIRC they actually reuse the same resolution package that Cargo (Rust's package manager) uses.
- bsdz 2y agoYes I think I heard pypi started exposing dependency info so it makes sense to use that where possible. The dependency resolution computation is an interesting problem. I think poetry at some point switched to mypyc for compilation (although I can't find conclusive evidence for it now). From my experience, mypyc doesn't really improve performance much compared to say writing a c/c++ extension. Perhaps offloading dependency resolution in poetry to a native c library is a way to match uv.
- mihaic 2y agoI keep reading praise about uv, and every single time I never really understand what problems it addresses. I've got a couple quite big Django projects for which I've used venv for years, and not once have I had any significant issues with it. Speed at times could have been better and I would have liked to have a full dependency list lock file, but that never caused me issues. The only thing that comes to mind is those random fails to build of C/C++ dependencies. Does uv address this? I've always seen people rave about other benefits.
- hansihe 2y agoWhat makes it so great for me is the effortlessness. I often use Python for quick one off scripts. With UV I can just do `uv init`, `uv add` to add dependencies, and `uv run` whatever script I am working on. I am up and running in under a minute. I also feel confident that the setup isn't going to randomly break in a few weeks. With most other solutions I have tried in the Python ecosystem, it always seemed significantly more brittle. It felt more like a collection of hacks than anything else.
- aneidon 2y agoYou can even inline the dependencies: https://docs.astral.sh/uv/guides/scripts/#declaring-script-dependencies https://docs.astral.sh/uv/guides/scripts/#declaring-script-d... That plus this: https://news.ycombinator.com/item?id=42855258 https://news.ycombinator.com/item?id=42855258 Makes it pretty seamless for one-off scripts.
- chippiewill 2y agoThe benefit that uv adds is it's a one-stop-shop that's also wicked fast. If you use venv then you have extra steps because you have to explicitly create the venv, then explicitly install the deps there with pip. If your project is designed for a specific python version then developers have to manage that separately (usually pyenv these days). For people building apps uv replaces venv, pip and pyenv, while being way faster at doing all three of those (you can completely rebuild the virtualenv and install the dependencies from scratch in under a second usually because uv is faster at creating a virtualenv than venv and is very quick at relinking the dependencies from a package cache).
- BerislavLopac 2y agoAs much as I am glad that it looks like one solution is being more and more accepted as the golden standard, I'm a little disappointed that PDM [0] -- which has been offering pretty much everything uv does for quite some time now -- has been completely overlooked. :( [0] https://pdm-project.org https://pdm-project.org
- porridgeraisin 2y agopdm actually supports using uv as the resolver https://pdm-project.org/en/latest/usage/uv/ https://pdm-project.org/en/latest/usage/uv/
- brokegrammer 2y agoI switched from Poetry to uv last year. I like the speed and how it stores virtual envs in a .venv directory along with the project by default, whereas Poetry store it in a separate directory in your home directory by default, which makes it hard to work with tools that only discover virtual envs in the project root. uv tool is also a great replacement for pipx. I think it's the way to go for Python dependency management in 2025.
- rubenvanwyk 2y agoMay uv please keep on eating the python world. It's so good.
- DHolzer 2y agoI recently checked out UV, and it's impressively fast. However, one challenge that keeps coming up is handling anything related to CUDA and Torch. Last week, I started developing directly in PyTorch containers using just pip and Docker. With GPU forwarding on Windows no longer being such a hassle, I'm really enjoying the setup. Still, I can’t shake the feeling that I might be overlooking something critical. I’d love to hear what the HN crowd thinks about this type of env.
- jerrygenser 2y agoI've used uv with pytorch and cuda fine. What problem have you had? I also use it in docker to build the container.
- mbeex 2y agoAt least my kind of problems were solved by https://docs.astral.sh/uv/guides/integration/pytorch/#installing-pytorch https://docs.astral.sh/uv/guides/integration/pytorch/#instal...
- fluidcruft 2y agoI assume you've seen this: https://docs.astral.sh/uv/guides/integration/pytorch/ https://docs.astral.sh/uv/guides/integration/pytorch/ If the platform (OS) solution works for you that's probably the easiest. It doesn't for me because I work on multiple Linux boxes with differing GPUs/CUDAs. So I've use the optional dependencies solution and it's mostly workable but with an annoyance that uv sync forgets the --extra that have been applied in the venv so that if you "uv add" something it will uninstall the installed torch and install the wrong one until I re-run uv sync with the correct --extra again. (uv add with --extra does something different) And honestly I appreciate not having hidden venv states but it is a bit grating. There are some ways to setup machine/user specific overrides with machine and user uv.toml configuration files. https://docs.astral.sh/uv/configuration/files/ https://docs.astral.sh/uv/configuration/files/ That feels like it might help but I haven't figured out how to configure get that to help it pick/hint the correct torch flavor for each machine. Similar issues with paddlepaddle. Honestly I just want an extras.lock at this point but that feels like too much of a hack for uv maintainers to support. I have been pondering whether nesting uv projects might help so that I don't actually build venvs of the main code directly and the wrapper depends specifically on certain extras of the wrapped projects. But I haven't looked into this yet. I'll try that after giving up on uv.toml attempts.
- __mharrison__ 2y agoI just taught a week long course, Advanced Python for Data Scientists. The first day we discussed how to use uv. The feedback was "this UV content is worth the price of the whole course". Using uv is an easy sell to anyone who has worked with Python. Great work Charlie and team.
- zachwill 2y agoI’ve been primarily a Python developer since 2012 and recently switched to uv. The ability to manage dependencies, venv, and multiple Python versions makes it best-in-class now. It really is a fantastic tool.
- Tewboo 2y agoIt's interesting to see UV downloads surpassing Poetry for Wagtail users. Could be a sign of growing preference for speed and simplicity.
- bootsmann 2y agoPoetry also is a true open source project without corporate backing iirc, so they don't have the publicity levers that uv has.
- fluidcruft 2y agouv is open source https://docs.astral.sh/uv/reference/policies/license/ https://docs.astral.sh/uv/reference/policies/license/ There is not true vs untrue open source unless perhaps you intend copyleft, but that has nothing to do with whether or not there is corporate backing. Even GNU itself has had corporate backing for its compiler work and other utilities.
- rob 2y agouv, ruff.... Astral doesn't miss. Excited to see what else they can bring to the Python world. Had an issue running something on the latest Python version installed (3.13) but only needed to 'downgrade' to 3.11 to run that particular script. Just a simple: `uv run --python 3.11 --with openai-whisper transcribe.py` And no need to mess with anything else.
- jessekv 2y ago> what else they can bring type checking
- deleted 2y ago[deleted]
- jimmydoe 2y agoI don't understand the chart, does it say wagtail suddenly had a lot more uv traffic, but pip and poetry did not drop much? what does that mean? new batch of users emerges using uv? behavior of new uv version disrupted the chart?
- brylie 2y agoAs an aside, I can't praise the Wagtail CMS highly enough. It sets a high bar for usability and accessibility of the auto-generated content management UI. The developer experience is top notch with excellent documentation and many common concerns already handled by Wagtail or Django. A significant amount of Wagtail-specific code is declarative, essentially describing data model, relationships, and UI fields. The parts that you don't need stay out of the way. It's also agnostic of the type of front-end you want, with full and automatic support for headless mode with JavaScript client, using traditional Django templates SSR, or using a dynamic approach like HTMX. Kudos to the Wagtail team!
- ThibWeb 2y agoty! We have no plans to rewrite Wagtail in Rust but I hope there’s ways in which we can make the developer experience better, particularly around dependencies management
- sireat 2y agoComing from 10+ years of pip and also heavy venv user - uv seems pretty good. First impressions of uv are quite nice, but how does one change Python versions once you have a project up? I installed 3.13 with `uv python install python3.13` I see bunch of Python versions now with `uv python list` (uv even found my old Anaconda 3.9 install from way back) But how would I switch to 3.13? LLM hallucinates with `uv venv use 3.13` but that command does not work. I see from https://docs.astral.sh/uv/concepts/projects/config/#python-version-requirement https://docs.astral.sh/uv/concepts/projects/config/#python-v... that one can specify the version in pyproject.toml, but should not there be a command line to switch?
- toenail 2y agopath/to/venv/bin/uv pip install foo installs to the global venv, not path/to/venv. Sadly that's a deal breaker for me, everything else looked great.
- bsdice 2y agoBiggest issue I have, is not solving all the dependency hell that is Python with its unversioned libraries, but supply chain attacks. Also regressions introduced by new versions all the time. That is why for projects I resolve everything by hand, add all coarsely audited 3rd party libraries to ./lib/, and the main entry file then does this: #!/usr/bin/env -S /bin/sh -c "_top_dir=\"\$(dirname \"\$(realpath -s \"\$0\")\")\"; cd \"\$_top_dir\"; exec \"\$_top_dir/python/install/bin/python3\" -W once::DeprecationWarning -X dev \"\$0\" \"\$@\"" import os import sys # Insert ./lib/ in front of search path sys.path.insert(0, os.path.join(os.path.dirname(__file__), "lib")) ... I like the excellent standalone CPython by indygreg, now under astral-sh's github organization. Unpack as is into ./python/ and done. Because Arch Linux would just roll forward to whatever version is latest, introducing new warnings every month or two and havoc on any new major version. Project is fully portable, copy anywhere that has glibc, run.