uv : le gestionnaire Python que tout Data Engineer devrait connaître
Comment uv, d'Astral, a remplacé pip, venv et pyenv dans nos projets Databricks et Azure — avec un gain de vitesse de 10 à 100×.
Si vous utilisez encore pip install au quotidien en Data Engineering, vous laissez du temps et de la fiabilité sur la table. uv, créé par Astral (l'équipe derrière le linter Ruff), est l'outil qui a changé mon flux de travail en 2026 — et il changera probablement le vôtre aussi.
Le problème classique des environnements Python
Quiconque travaille avec des pipelines Python connaît la douleur : installer une stack typique de Data Engineering (polars, dbt-databricks, azure-storage-blob, pyarrow) avec pip prend entre 45 et 60 secondes sur une machine propre. En CI/CD, ce temps se multiplie à chaque build.
De plus, gérer les versions de Python entre différents projets, garder requirements.txt à jour et garantir que l'environnement de dev est identique à la production sont des défis constants — même avec Poetry ou Conda.
Qu'est-ce que uv ?
uv est un gestionnaire de paquets et de projets Python écrit en Rust, développé par Astral. En un seul outil, il remplace :
pip— pour installer les paquetsvenv— pour créer des environnements virtuelspyenv— pour gérer les versions de Pythonpip-compile/pip-tools— pour le lock des dépendances
La performance est le principal atout : 10 à 100× plus rapide que pip, grâce à un cache intelligent et au parallélisme via Rust.
Installation
curl -Ls https://astral.sh/uv | sh
C'est tout. uv s'installe comme un binaire unique, sans dépendances externes.
Flux de travail pour le Data Engineering
Créer un nouveau projet
uv init meu_pipeline
cd meu_pipeline
uv crée automatiquement :
pyproject.toml— la configuration du projet.python-version— la version de Python fixéemain.py— un fichier de départ
Ajouter des dépendances
uv add polars dbt-databricks azure-storage-blob pyarrow
uv résout et installe tout en parallèle. À la première utilisation, avec un cache froid, le gain est déjà visible. Avec un cache chaud (builds suivants), le temps tombe sous la seconde.
Un fichier uv.lock est généré automatiquement avec toutes les versions exactes — y compris les dépendances transitives. Ce fichier doit être versionné dans Git pour garantir une reproductibilité totale.
Exécuter des scripts
uv run python etl.py
uv vérifie l'environnement virtuel automatiquement avant l'exécution. Si l'environnement n'existe pas ou est obsolète, il le crée/met à jour avant de lancer.
Gérer les versions de Python
uv python install 3.12
uv python pin 3.12
Sans avoir besoin de pyenv ni de configuration manuelle du PATH.
Utilisation dans les projets Databricks et Azure
Dans nos projets Databricks et Azure Data Factory, uv a apporté des bénéfices concrets :
Environnements de développement locaux : Avec uv sync, n'importe quel développeur réplique l'environnement exact du projet avec une seule commande — sans README de setup, sans makefile.
CI/CD : Sur GitHub Actions et Azure DevOps, uv réduit le temps de mise en place de l'environnement de 2-3 minutes à moins de 20 secondes.
Scripts ETL isolés : uv prend en charge les dépendances inline dans les scripts :
# /// script
# dependencies = ["polars", "azure-storage-blob"]
# ///
import polars as pl
# ...
En lançant uv run etl_script.py, uv installe automatiquement les dépendances du script, sans polluer l'environnement global.
Limitations importantes
uv ne remplace pas Conda pour les projets qui dépendent de bibliothèques système natives (CUDA, cuDNN, ffmpeg). Pour les pipelines de ML avec GPU ou traitement vidéo, Conda reste nécessaire pour les dépendances système.
Pour le Data Engineering pur (ETL, orchestration, transformation avec Polars/DuckDB/dbt), uv couvre 100 % des cas d'usage.
Conclusion
uv est l'évolution naturelle de l'écosystème Python pour les Data Engineers. Avec une vitesse supérieure, un lock de dépendances automatique et une interface unifiée qui remplace plusieurs outils, il élimine toute une catégorie de problèmes d'environnement qui font perdre du temps sur les projets.
Si vous travaillez avec Python sur des projets de données — surtout avec Databricks, Azure ou des pipelines ETL — cela vaut la peine de consacrer 15 minutes à tester uv sur votre prochain projet.
Documentation officielle : docs.astral.sh/uv
Articles liés
Ingestão incremental: pare de recarregar tudo toda noite
Watermarking, change data capture e os padrões que reduzem custo e janela de processamento em pipelines de ETL.
Lire l'articleSlowly Changing Dimensions Tipo 2 sem dor de cabeça
O padrão essencial para rastrear histórico em dimensões — explicado com um exemplo concreto e os erros mais comuns.
Lire l'articleVous avez aimé ? Découvrez les e-books pour du contenu approfondi.
E-books