Brains Up AnalyticsBRAINSUPAnalytics
PythonData EngineeringOutils

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 paquets
  • venv — pour créer des environnements virtuels
  • pyenv — pour gérer les versions de Python
  • pip-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ée
  • main.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

Vous avez aimé ? Découvrez les e-books pour du contenu approfondi.

E-books