uv - Nieuw Python-pakket, project- en omgevingsbeheerder
Goede dingen over Python uv
Python uv (uitgesproken als “you-vee”) is een moderne, hoogprestatie Python-pakket- en projectbeheerder geschreven in Rust. Het is ontworpen als een directe vervanging voor traditionele Python-pakketbeheer-tools zoals pip
, pip-tools
, virtualenv
, pipx
en pyenv
, met als doel om Python-ontwikkelingsworkflows te vereenvoudigen en te versnellen.
uv wordt ontwikkeld door Astral, het team achter de populaire Python-linter Ruff, en is ontworpen om veelvoorkomende problemen in de Python-ecosysteem—zoals traag installeren, afhankelijkheidsconflicten en complexe omgevingsbeheer—te verminderen door gebruik te maken van de prestaties van Rust en moderne softwarearchitectuur.
Belangrijke functies van uv
- Uitstekende snelheid: uv is aanzienlijk sneller dan traditionele tools—meestal 8–10x sneller dan pip zonder caching, en tot 80–115x sneller met een warme cache.
- Al-in-één-tool: Combineert pakketinstallatie, afhankelijkheidsoplossing, virtuele omgevingsbeheer, Python-versiebeheer, projectopzet en scriptuitvoering in één tool.
- Compatibiliteit: Biedt een pip-compatibele opdrachtregelinterface, waardoor het makkelijk te adopteren is zonder een hoge leercurve.
- Robuuste afhankelijkheidsbeheer: Biedt nauwkeurige afhankelijkheidsoplossing en lockfile-ondersteuning voor herhaalbare omgevingen.
- Automatische virtuele omgevingen: Creëert en beheert virtuele omgevingen automatisch, waardoor handmatige instellingen worden verminderd.
- Cross-platform-ondersteuning: Werkt op macOS, Linux en Windows.
- Standalone installatie: Kan worden geïnstalleerd zonder Python of Rust, met behulp van een eenvoudige installer of
curl
.
Nog steeds onzeker waarom uv gebruiken?
- Prestaties: Vermindert aanzienlijk de installatietijd van pakketten en afhankelijkheidsoplossing.
- Eenvoud: Verenigt meerdere tools in één, waardoor projectopzet en beheer worden vereenvoudigd.
- Betrouwbaarheid: Levert consistente, herhaalbare omgevingen met duidelijke foutmeldingen en conflictoplossing.
- Moderne standaarden: Ondersteunt
pyproject.toml
voor projectconfiguratie, wat overeenkomt met huidige Python-pakketstandaarden.
Voorbeeldgebruik
Laten we iets spannends proberen!
- Een nieuw project starten:
uv init myproject
cd myproject
uv add requests
uv run python script.py
Dit maakt een projectmap, stelt een virtuele omgeving in, installeert afhankelijkheden en voert scripts uit in een geïsoleerde omgeving.
- Scripts beheren met inline-afhankelijkheden:
uv add --script script.py requests
uv run script.py
uv kan afhankelijkheden beheren voor enkelvoudige scriptbestanden zonder aparte requirementsbestanden.
Vergelijking met traditionele tools
Functie | uv | pip/virtualenv | Poetry |
---|---|---|---|
Snelheid | Zeer snel | Traag | Gemiddeld |
Virtuele omgevingen | Automatisch | Handmatig | Automatisch |
Afhankelijkheidsoplossing | Geavanceerd | Basis | Geavanceerd |
Python-versiebeheer | Ja | Nee (vereist pyenv) | Nee |
Lockfile-ondersteuning | Ja | Nee (vereist pip-tools) | Ja |
Scriptuitvoering | Geïntegreerd | Nee | Beperkt |
Hoe installeer en gebruik ik UV op mijn systeem
Om uv te installeren en te gebruiken op je systeem, volg dan deze eenvoudige stappen:
Installatie
- Standalone Installer (Aanbevolen)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Of, als je liever wget
gebruikt:
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Specifieke versie: Je kunt een specifieke versie aanvragen door deze in de URL op te nemen, bijvoorbeeld
https://astral.sh/uv/0.7.15/install.sh
.
- Alternatief: Installeer via pip (als je Python hebt geïnstalleerd)
pip install uv
Opmerking: Deze methode wordt minder aanbevolen voor systeemwijde toegang tenzij je weet wat je doet, omdat het je systeem Python-omgeving kan verstoren.
- Installeer via pipx (voor geïsoleerde, gebruikersbreed installatie)
pipx install uv
Deze methode is netter voor globale toegang als je al pipx
gebruikt.
Aan de slag
Om de installatie te controleren - Voer uit:
uv
Je ziet dan een helpmenu dat bevestigt dat uv geïnstalleerd en gereed is.
Om een virtuele omgeving te maken en activeren:
- Maak een venv aan:
uv venv test
- Activeer het op Linux/macOS:
source test/bin/activate
- Activeer het op Windows:
.\test\Scripts\activate
Nu kun je uv pip install
gebruiken om pakketten in deze omgeving te installeren.
Een nieuw project initialiseren
uv init
Dit maakt een pyproject.toml
en .gitignore
voor je project.
Afhankelijkheden toevoegen
Voeg een pakket toe:
uv add
Dit bijwerkt pyproject.toml
en genereert/vernieuwt de lockfile.
Afhankelijkheden synchroniseren
Installeer alle afhankelijkheden in je omgeving:
uv sync
Of gebruik de pip-compatibele interface:
uv pip install
Dit zorgt ervoor dat alle afhankelijkheden volgens je lockfile worden geïnstalleerd.
Scripts uitvoeren
Gebruik:
uv run script.py
Dit beheert automatisch de omgeving en afhankelijkheden voor je script.
Shell-integratie (optioneel)
Voor een soepele workflow kun je shell-integratie toevoegen aan je .zshrc
of .bashrc
om automatisch een standaard virtuele omgeving te activeren en pip
te aliasen naar uv pip
.
Met deze stappen heb je uv geïnstalleerd en ben je gereed om je Python-projecten snel en gemakkelijk te beheren.
Specifieke Python-versies installeren
Je kunt uv gebruiken om specifieke Python-versies te installeren en deze te beheren voor je projecten.
- Installeer de nieuwste stabiele Python-versie:
Deze opdracht downloadt en installeert de meest recente stabiele Python-versie die beschikbaar is.uv python install
- Installeer een specifieke versie:
Dit installeert de nieuwste patchversie van Python 3.12 (bijvoorbeeld 3.12.3).uv python install 3.12
- Installeer een exacte patchversie:
Dit installeert precies Python 3.12.3.uv python install 3.12.3
- Installeer meerdere versies:
Dit installeert Python 3.9, 3.10 en 3.11.uv python install 3.9 3.10 3.11
- Installeer een versie die overeenkomt met een beperking:
Dit verandert de Python-versiebehoefte van het project.uv python install '>=3.8,=3.11"
Extra aandachtspunten
Automatische downloads: Standaard zal uv automatisch de benodigde Python-versies downloaden en installeren als ze niet op je systeem aanwezig zijn.
Systeem Python: uv kan bestaande Python-installaties gebruiken als deze aanwezig zijn, of je kunt het dwingen om systeem Python te gebruiken met de --no-managed-python
vlag.
Upgrades: Je kunt uv-gemanagede Python-versies upgraden naar de nieuwste patchversie met:
uv python upgrade 3.12
Of upgrade alle geïnstalleerde versies:
uv python upgrade
Upgrades over minoren (bijvoorbeeld van 3.12 naar 3.13) worden niet ondersteund.
In samenvatting biedt uv flexibele en krachtige tools voor het installeren, beheren en gebruiken van specifieke Python-versies in je projecten.
Hoe ontdekt UV beschikbare Python-interpreters op verschillende systemen
UV ontdekt beschikbare Python-interpreters op verschillende systemen door een aantal goed gedefinieerde locaties te controleren en elke kandidaat te vragen naar zijn versie-metadata. Hier is hoe het werkt:
- Gemanagede Python-installaties:
UV kijkt eerst in de map die is opgegeven door de omgevingsvariabeleUV_PYTHON_INSTALL_DIR
, waarin het zijn eigen gemanagede Python-versies opslaat. - Systeem PATH:
Op macOS en Linux controleert UV of er uitvoerbare bestanden zijn genaamdpython
,python3
ofpython3.x
(waarbijx
een versienummer is) in de mappen die zijn opgenomen in de systeemPATH
. Op Windows zoekt het naarpython.exe
. - Windows-specifieke locaties:
Op Windows controleert UV ook de Windows-registry en Microsoft Store Python-interpreters met behulp van de uitvoer vanpy --list-paths
. - Virtuele omgevingen:
Als een virtuele omgeving actief is of is opgegeven, controleert UV de interpreter in die omgeving op compatibiliteit voordat het elders zoekt. - Metadata-query:
Elke ontdekte uitvoerbare bestand wordt gequeryd op zijn versie-metadata. Alleen uitvoerbare bestanden die overeenkomen met de gevraagde versie (of versiebeperking) worden overwogen. Niet-uitvoerbare bestanden worden genegeerd. - Voorkeur en fallback:
Standaard prefereert UV systeem Python-installaties, maar je kunt dit aanpassen met opties om gemanagede of alleen gemanagede/systeemversies te gebruiken. Als er geen geschikte interpreter wordt gevonden, kan UV de benodigde versie downloaden en installeren.
Deze robuuste ontdekkingproces zorgt ervoor dat UV betrouwbaar de juiste Python-interpreter kan vinden en gebruiken op verschillende besturingssystemen en omgevingen.
Nuttige links
- uv’s homepage: https://docs.astral.sh/uv/
- uv package: https://pypi.org/project/uv/
- uv’s github: https://github.com/astral-sh/uv/
- Python Cheatsheet
- Conda Cheatsheet
- venv Cheatsheet
- Bash Cheat Sheet
- Ollama cheatsheet
- venv Cheatsheet