uv
is an extremely fast Python version, package and project manager, written in Rust.
- Debian-based system
This role will install uv
using pipx
, to the default location defined by the pipx role. A link to the uv
binary installed by pipx
is placed in /usr/local/bin/
, so uv
is on the PATH for each user.
Aditionally, a script /usr/local/bin/uv_pip
is installed, which is essentially an alias for uv pip
. This is for convenience of use in Ansible playbook: it e.g. allows passing uv_pip
as the executable for a call to Ansible's pip module.
The role also supports creating venvs and installing desired Python versions (see below).
The role will set a fact uv_python_paths
, which contains a dict containing the location of the python interpreter for each requested versions. For example:
uv_python_paths: {
'3.11': '/root/.local/share/uv/cpython-xxxxx/bin/python3'
}
uv_vens
: List of dicts describing virtual environments to be initialized withuv
. Each item in the dict is expected to contain apython
andpath
attribute: the former determines which Python verison to use for the venv, while the latter is the location of the venv. Example:{ path: '/tmp/foo', python: '3.11' }
. Note: Python versions are installed if necessary.uv_python_versions
: List of strings of python versions to be installed withuv
. For example:[ '3.11', '3.12.3' ]
.
2024 Written by Dawa Ometto (Utrecht University)