Properties2
TypeConcept
Note createdFeb 17, 2025

uv is a Python packaging tool, developed by Astral, that aims to be extremely fast and provide end to end solutions for Python projects, Python environments, single-file scripts and even Python management itself. They try to position themselves as “Cargo, for Python”.

uv provides:

  • End-to-end project management: an alternative to Poetry or Rye, uv can generate and install cross-platform lockfiles.
    • uv init: creates a basic project layout.
    • uv run
    • uv lock
    • uv sync
  • Tool management: it can install command-line tools in isolated virtual environments and execute one-off commands without explicit installation, making it an alternative to pipx
    • uv tool install
    • uv tool run / uvx: Run the tool without any previous installation instruction. It can also include dependencies using --with; for example: uvx --with pandas --with seaborn jupyter lab will spin a Jupyter Lab instance with some packages available.
  • Python installation: it can bootstrap and install different Python versions, making it an alternative to pyenv.
    • uv python install
  • Script execution: manage hermetic, single-file Python scripts using inline dependency metadata based on PEP 723.
    • uv run