uv must be installed to build a standalone Python distribution
1 points by jbeckford
1 points by jbeckford
This is not upstream python, this is the python uv uses.
Yes, but it is a community project that astral has taken stewardship of and by their own admissionv "For much of the ecosystem, it's now the primary source of Python installations."
I use python a lot, and I use uv a lot, and I don't quite understand the complaint here. Is it just that the standalone distributions (that astral has taken over maintenance of for quite some time) now require uv if you want to build them from source?
That doesn't seem worrisome to me... they were already kind of dubious when astral inherited them, and having a better-standardized set of steps to build them is only an improvement AFAICT.
A sibling thread better highlights why this was important for the submitter.
That aside, I personally have mixed feelings about this direction (maybe similarly to how I had mixed feelings about standalone python moving under astral's stewardship).
On the one hand, every project I've seen migrating to uv has strictly benefitted from this, because uv just streamlines a lot of things that were previously tedious and/or slow. So I believe, standalone python builds will also somewhat benefit from this move from a developer experience standpoint. Also, it would be weird for astral to not choose their own tooling for this, right?
On the other hand, forcing the use of an opinionated "3rd-party" tool (that astral bulids) on a "common goods" type of project (that astral inherited to then steward) makes me feel just a little uneasy.
Would anyone who reported this as spam care to reply and say why? The definiton on /about says:
Spam which should be used for content that either is designed to promote a commercial service or for content that is created without meaningful human authorship.
and that doesn't match for this in any way, as far as I can see.
The guidelines state:
Brigading: [...] For contentious topics, try to submit a link to an overviews rather than linking into a project's community spaces like issue trackers and mailing lists.
For this reasons, links to issues and PR are disallowed in stories. Linking to a commit instead of the PR sidesteps this filtering, but does not make it any better.
That makes sense... I didn't even think about a commit as potentially "brigading". Thanks.
TLDR: python-build-standard is a (the?) conventional way to package up Python into a standalone distribution for uv, Bazel, etc. It moved to Astral (https://gregoryszorc.com/blog/2024/12/03/transferring-python-build-standalone-stewardship-to-astral) at the end of 2024. And in May 2026 (the article link) a commit was merged acknowledging uv is now a requirement, not just a user, of python-build-standard.
I get it ... it is superhard to bootstrap a distribution. I am guessing the change made it easier for Astral to maintain. But as someone looking to use python-build-standard, the new sequence (1. build/get initial Python, 2. build Rust, 3. build uv, 4. run python-build-standard to build a new Python) is complex.
It is my understanding that most users will be getting these from a python managers like pdm, poetry, bazel, uv (i.e. to pin a specific runtime for a virtual environment).
The process you outline is only relevant if you want for some reason to roll your own standalone python.
I'm building a Bazel like build system so I am in that category. (Sorry, my timing was off reading/writing the comments)
I was surprised to see I needed to package up Rust to package up Python!
I see, this surely complicates a lot.
That said, the commit you reference only updates the docs. I wonder what are/were the actual changes that now absolutely require uv to run builds.
After all, most of what uv does is manage the python toolchain, build.py is still (hopefully) standard python and all the environment is described in pyproject.toml so maybe you don't really need rust just for this?
Personally I don't like deviating from official guidance so I'll package up Rust and uv. (Packaging Rust and uv is far from the end of the world.)
But yes, I will take your hint and see what in the current build actually requires uv ... if for no other reason than to understand the new Python toolchain fully.