Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Neat. uv is spectacular.

But I don’t get it. How does it work? Why is it able to solve the Python runtime dependency problem? I thought uv had kinda already solved that? Why is a new thingy majig needed?



> Why is it able to solve the Python runtime dependency problem? I thought uv had kinda already solved that?

The dependencies in question are compiled C code that Python interfaces with. Handling dependencies for a graph of packages that are all implemented in pure Python, is trivial.

C never really solved all the ABI issues and especially for GPU stuff you end up having to link against very specific details of the local architecture. Not all of these can be adequately expressed in the current Python package metadata system.

Aside from that, a lot of people would like to have packages that use pre-installed dependencies that came with the system, but the package metadata isn't designed to express those dependencies, and you're also on your own for actually figuring out where they are at runtime, even if you take it on blind faith that the user separately installed them.

This is not really my wheelhouse, though; you'll find a much better write-up at https://pypackaging-native.github.io/ .


> especially for GPU stuff you end up having to link against very specific details of the local architecture.

Hrm. This doesn’t sound right to me. Any project should target a particular version of Cuda and then the runtime machine simply needs to have that version available. Right?

> a lot of people would like to have packages that use pre-installed dependencies that came with the system

Those people are wrong. Everything these days requires Docker because it’s the only way to deploy software that can reliable not crash on startup. (This is almost entirely a Linux self induced problem)


You are assuming you are allowed to choose which CUDA runtime you can use.


When can I not? Cuda is just a large handful of shared libraries. It’s not magic.


When you need to link into the system-provided CUDA versions and not the ones you bring along.


This is a server hosted SaaS product that acts as a private registry for your company's Python packages.

uv becomes a client that can install those packages from your private registry.

I imagine pip will be able to install them from a PYX registry too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: