uv

uv is an extremely fast Python package and project manager.

Both the installation of uv and the creation of file structures for libraries or Apps are already described in our Python basics tutorial.

Inline script metadata

However, uv is also ideal for individual Python scripts that contain inline script metadata, for example:

app.py
 #!/usr/bin/env -S uv run
 # /// script
 # requires-python = ">=3.12"
 # dependencies = [
 #     "rich",
 # ]
 # ///
 import rich

If the permissions for the app.py file are executable, for example with chmod 755, you can run it on any computer with uv installed:

./app.py

A separate isolated environment is automatically created with the correct Python version and dependencies.

Create packages

With uv build you can easily create distribution packages and wheels.

Declare, lock and automatically update dependencies

Updating Aktualisieren von uv.lock describes how you can use uv lock --upgrade to update all dependencies and uv lock --upgrade-package PACKAGE==VERSION to update individual dependencies in a controlled manner. We describe how you can regularly update the dependencies of your project automatically in Dependency bot. These measures significantly increase the security of your project.

Testing in different Python environments

uv simplifies the parallel installation of different Python versions, including PyPy and free-threaded Python 3.13. With tox-uv you can then test your project automatically in the different Python environments.