Adding support for uv package manager - #6354
Conversation
preventing packages from being installed in the uv environment.
|
this seems like the wrong way to use uv,
at minimum this should remove break-system-packages, uv users can simply run but there is also probably a smarter way to utilize uv, ex. one that uses |
|
Thanks for the feedback! My initial approach to implementing uv here was meant to be as a fairly conservative, drop in replacement for pip. While this doesn't make use of all of the advantages of uv, it does ensure that the workflow stays the same for both pip and uv without overhauling how dependencies are handled throughout the project. That said, I agree with removing break-system-packages to ensure that uv targets the venv, and have done so. I'm also willing to determine how to implement uv into the project on a deeper level if there is interest in modernizing the package management. |
What is this fixing or adding?
This pull request adds support for uv, a Python package manager written in Rust that is often considerably faster than standard
pipinstalls. Support forpipis fully maintained, bothModuleUpdate.pyandsetup.pywill automatically fall back topipifuvis not installed.An additional advantage when using
uvis that runningsetup.pyto create executables no longer requires manually creating or managing a virtual environment. Instead,uvautomatically manages a temporary virtual environment on the fly to run the files and builds. This makes creating apps or executables for users with less Python experience significantly more streamlined, allowing the app to be compiled with a single terminal command.In principle, running files other than
setup.pycan also be done without a virtual environment, though I did not test it explicitly. If running the various Python files from source is desired, then a virtual environment is still recommended.How was this tested?
I tested compilation of the source files with this new code on macOS Tahoe 26.5.2, Windows 11 25H2, and Kubuntu 26.04. On the Mac system, the app was successfully built and functioned identically to the main branch version. On Windows and Kubuntu, binaries were built and also tested successfully.
If this makes graphical changes, please attach screenshots.
No graphical changes made