1 Installation
There are several ways to install Python.
The current recommendation of this book is to use uv. uv is really fast and and comprehensive tool that can install and manage:
- Python itself
 - packages / dependencies
 - virtual environments / projects
 
1.1 Install uv
You can install uv itself in a few different ways.
To directly install uv, you can use curl:
curl -LsSf https://astral.sh/uv/install.sh | shor wget:
wget -qO- https://astral.sh/uv/install.sh | sh1.2 Upgrading uv
uv can upgrade itself:
uv self update1.3 uv shell auto-completion
See here how to enable shell auto-completion for uv commands for your shell.
1.4 Install Python
To install Python using uv:
uv python installIf you already have Python installed, e.g. using brew/homebrew or other package manager, you can skip this step, uv will find available Python installations on your system. Use uv python list to see all available Python installations, whether installed by uv or not.
1.5 Create a new project
To create a new project using uv:
uv init <project-name>
# or mkdir <project-name> && cd <project-name> && uv init1.6 Install packages
uv add <package-name> <package-name2> ...1.7 Install package as development dependency
Development dependencies are packages that are only needed for development, e.g. testing, linting, etc., but are not needed by the end user.
uv add --dev <package-name> <package-name2> ...Reference: uv development dependencies
1.8 Install local pacckage in editable mode
If you are developing a package and want to install it so that changes to the package are immediately available in your project, you can install it in editable mode:
uv add --editable /path/to/packageReference: uv editable dependencies
1.9 Update packages
Within a project, you can update all packages using:
uv lock --upgrade
uv sync1.10 Remove packages
uv remove <package-name> <package-name2> ...1.11 List project’s dependency tree
uv tree