Python is managed entirely with uv — for Python version installation, virtual environments, and dependency management.
uv python install 3.13 # install latest 3.13
uv python install 3.12.4 # install a specific version
uv python list # list installed and available versionsUse mkvenv to create a virtual environment in the current directory:
mkvenv # create .venv using the latest installed Python
mkvenv 3.12 # create .venv using Python 3.12This creates .venv/ in the current directory. Activate it with:
source .venv/bin/activate.fishFor projects with a pyproject.toml, uv manages dependencies directly:
uv init # create a new project
uv add requests # add a dependency
uv sync # install all dependencies
uv run python script.py # run in the project environmentuvu # uv lock --upgrade && uv syncThis upgrades all dependencies to the latest allowed versions (within constraints in pyproject.toml) and syncs the environment.
plo # uv pip list --outdatedMise can also manage Python versions as an alternative to uv python. The two coexist — uv is preferred for project work.
uv shell completions are generated automatically in config.fish:
uv generate-shell-completion fish | source