uv - Ny Python-paket, projekt- och miljöhanterare

Bra saker med Python uv

Sidinnehåll

Python uv (uttalas “you-vee”) är ett modernt, högpresterande Python-paket och projektverktyg skrivet i Rust. Det är utformat som en direkt ersättare för traditionella Python-pakethanteringsverktyg som pip, pip-tools, virtualenv, pipx och pyenv, med målet att förenkla och accelerera Python-utvecklingsflöden.

uv utvecklas av Astral, teamet bakom den populära Python-lintaren Ruff, och är utformat för att hantera vanliga smärtor i Python-ecosystemet - såsom långsamma installationer, beroendekonflikter och komplex miljöhantering - genom att utnyttja Rusts prestanda och modern programarkitektur.

uv python ultra-violet spa

Nyckelfunktioner i uv

  • Exceptionell hastighet: uv är betydligt snabbare än traditionella verktyg - vanligtvis 8-10 gånger snabbare än pip utan cachning, och upp till 80-115 gånger snabbare med varm cache.
  • Allt-i-ett-verktyg: Kombinerar paketinstallation, beroendelösning, virtuell miljöhantering, Python-versionshantering, projektmallar och skriptkörning i ett enda verktyg.
  • Kompatibilitet: Erbjuder ett pip-kompatibelt kommandoradsgränssnitt, vilket gör det enkelt att anta utan brant inlärningskurva.
  • Robust beroendeförvaltning: Ger exakt beroendelösning och lockfilstöd för reproducerbara miljöer.
  • Automatiska virtuella miljöer: Skapar och hanterar virtuella miljöer automatiskt, vilket minskar manuell konfiguration.
  • Plattformsoberoende: Fungerar på macOS, Linux och Windows.
  • Fristående installation: Kan installeras utan att kräva Python eller Rust, med hjälp av en enkel installerare eller curl.

uv vs poetry vs pdm vs pip prestandajämförelse

Fortfarande osäker på varför använda uv?

  • Prestanda: Drastiskt minskar paketinstallations- och beroendelösningstider.
  • Enkelhet: Förenar flera verktyg till ett, vilket strömlinjerar projektuppsättning och förvaltning.
  • Tillförlitlighet: Levererar konsekventa, reproducerbara miljöer med tydliga felmeddelanden och konfliktlösning.
  • Moderna standarder: Stöder pyproject.toml för projektkonfiguration, i linje med aktuella Python-paketeringsstandarder.

Exempel på användningsområden

Låt oss prova något spännande!

  • Starta ett nytt projekt:
uv init myproject
cd myproject
uv add requests
uv run python script.py

Detta skapar en projektmapp, konfigurerar en virtuell miljö, installerar beroenden och kör skript i en isolerad miljö.

  • Hantera skript med inbäddade beroenden:
uv add --script script.py requests
uv run script.py

uv kan hantera beroenden för enskilda filskript utan separata kravfiler.

Jämförelse med traditionella verktyg

Funktion uv pip/virtualenv Poetry
Hastighet Mycket snabb Långsam Måttlig
Virtuella miljöer Automatisk Manuell Automatisk
Beroendelösning Avancerad Grundläggande Avancerad
Python-versionshantering Ja Nej (kräver pyenv) Nej
Lockfilstöd Ja Nej (kräver pip-tools) Ja
Skriptkörning Integrerad Nej Begränsad

Hur kan jag installera och börja använda UV på mitt system

För att installera och börja använda uv på ditt system, följ dessa enkla steg:

Installation

  1. Fristående installerare (rekommenderas)
    • Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh

Eller, om du föredrar wget:

wget -qO- https://astral.sh/uv/install.sh | sh
  • Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • Specifik version: Du kan begära en specifik version genom att inkludera den i URL:en, t.ex. https://astral.sh/uv/0.7.15/install.sh.
  1. Alternativ: Installera via pip (om du har Python installerat)
pip install uv

Obs: Denna metod rekommenderas inte för systemglobal åtkomst om du inte vet vad du gör, eftersom den kan oreda i ditt system-Python-miljö.

  1. Installera via pipx (för isolerad, användarglobal installation)
pipx install uv

Denna metod är renare för global åtkomst om du redan använder pipx.

Kom igång

För att kontrollera installationen - kör:

uv

Du bör se ett hjälpmeny som bekräftar att uv är installerat och redo.

För att skapa och aktivera en virtuell miljö

  • Skapa en venv:
uv venv test
  • Aktivera den på Linux/macOS:
source test/bin/activate
  • Aktivera den på Windows:
.\test\Scripts\activate

Nu kan du använda uv pip install för att installera paket i denna miljö.

Initiera ett nytt projekt

uv init

Detta skapar en pyproject.toml och .gitignore för ditt projekt.

Lägg till beroenden

Lägg till ett paket:

uv add

Detta uppdaterar pyproject.toml och genererar/uppdaterar lockfilen.

Synkronisera beroenden

Installera alla beroenden i din miljö:

uv sync

Eller använd det pip-kompatibla gränssnittet:

uv pip install

Detta säkerställer att alla beroenden installeras enligt din lockfil.

Kör skript

Använd:

uv run script.py

Detta hanterar automatiskt miljön och beroenden för ditt skript.

Shell-integration (valfritt)

För ett smidigare arbetsflöde kan du lägga till shell-integration i din .zshrc eller .bashrc för att automatiskt aktivera en standardvirtuell miljö och aliasa pip till uv pip.

Med dessa steg kommer du att ha uv installerat och vara redo att hantera dina Python-projekt med hastighet och enkelhet.

Installation av specifika Python-versioner

Du kan använda uv för att installera specifika Python-versioner och hantera dem för dina projekt.

  • Installera den senaste stabila Python-versionen:
    uv python install
    
    Denna kommando laddar ner och installerar den senaste stabila Python-versionen som finns tillgänglig.
  • Installera en specifik version:
    uv python install 3.12
    
    Detta installerar den senaste patch-versionen av Python 3.12 (t.ex. 3.12.3).
  • Installera en exakt patch-version:
    uv python install 3.12.3
    
    Detta installerar exakt Python 3.12.3.
  • Installera flera versioner:
    uv python install 3.9 3.10 3.11
    
    Detta installerar Python 3.9, 3.10 och 3.11.
  • Installera en version som matchar ett krav:
    uv python install '>=3.8,=3.11"
    
    Detta ändrar projektets Python-versionskrav.

Ytterligare anteckningar

Automatiska nedladdningar: Som standard kommer uv automatiskt att ladda ner och installera krävda Python-versioner om de inte hittas på ditt system.

System-Python: uv kan använda befintliga Python-installationer om de finns, eller du kan tvinga den att använda system-Python med flaggan --no-managed-python.

Uppgradering: Du kan uppgradera uv-hanterade Python-versioner till den senaste patch-versionen med:

uv python upgrade 3.12

Eller uppgradera alla installerade versioner:

uv python upgrade

Uppgradering mellan mindre versioner (t.ex. 3.12 till 3.13) stöds inte.

Sammanfattningsvis erbjuder uv flexibla och kraftfulla verktyg för att installera, hantera och använda specifika Python-versioner i dina projekt.

Hur upptäcker UV tillgängliga Python-tolk på olika system

UV upptäcker tillgängliga Python-tolk på olika system genom att kontrollera en uppsättning väldefinierade platser och fråga varje kandidat om dess versionsmetadata. Här är hur det fungerar:

  • Hanterade Python-installationer: UV letar först i katalogen som anges av miljövariabeln UV_PYTHON_INSTALL_DIR, där den lagrar sina egna hanterade Python-versioner.
  • System-PATH: På macOS och Linux kontrollerar UV efter exekverbara filer med namnen python, python3 eller python3.x (där x är en versionsnummer) i kataloger som listas i systemets PATH. På Windows letar den efter python.exe.
  • Windows-specifika platser: På Windows kontrollerar UV också Windows-registret och Microsoft Store Python-tolk med hjälp av utdata från py --list-paths.
  • Virtuella miljöer: Om en virtuell miljö är aktiv eller specificerad, kontrollerar UV tolken i den miljön för kompatibilitet innan den letar någonstans annat.
  • Metadata-fråga: Varje upptäckt exekverbar fil frågas om dess versionsmetadata. Endast exekverbara filer som matchar den begärda versionen (eller versionsbegränsningen) beaktas. Icke-exekverbara filer ignoreras.
  • Föredrag och backup: Som standard föredrar UV system-Python-installationer, men du kan justera detta med alternativ för att föredra hanterade eller endast använda hanterade/system-versioner. Om ingen lämplig tolke hittas kan UV ladda ner och installera den krävda versionen.

Denna robusta upptäcktsprocess säkerställer att UV kan tillförlitligt lokalisera och använda den korrekta Python-tolken över olika operativsystem och miljöer.

Användbara länkar