Installation Python 🐍
Python est probablement devenu l'un de vos outils principaux pour explorer des données, créer des visualisations et automatiser des rapports. Au début, une simple installation d'Anaconda ou de Python depuis le site officiel suffisait amplement pour vos besoins quotidiens.
Mais en milieu professionnel, les choses se compliquent. Les projets s'accumulent, les équipes s'agrandissent, et chaque projet a ses propres besoins techniques. Vous vous retrouvez à gérer simultanément d'anciens systèmes, des projets en cours et de nouveaux prototypes, tous avec des versions et des dépendances différentes.

Cette section vous montre comment gérer vos environnements Python de manière rigoureuse. Vous apprendrez à dépasser les limites d'une installation unique et à adopter des méthodes qui assurent des projets stables, reproductibles et faciles à partager en équipe.
Les limites d'une installation classique
Bien que Windows, macOS et Ubuntu incluent souvent une version préinstallée de Python, ces versions
système présentent plusieurs inconvénients. Tout d'abord, elles sont parfois obsolètes : par
exemple, votre Mac pourrait encore utiliser Python 2.7 alors que la version 3.12 est disponible.
Ensuite, la coexistence de Python 2 et Python 3 entraîne une confusion fréquente : faut-il utiliser
python
ou python3
dans le terminal ? Quel pip
correspond à
quelle version ? Ces ambiguïtés peuvent provoquer des erreurs frustrantes, notamment lorsque des
packages sont installés au mauvais endroit ou que des scripts sont exécutés avec une version
incorrecte de Python.
Les choses se compliquent encore davantage lorsque vous travaillez en équipe ou développez pour d'autres utilisateurs. Imaginez devoir gérer simultanément :
- Un projet A utilisant Python 3.8
- Un projet B basé sur Python 3.11
- Un prototype fonctionnant avec Python 3.12
Avec une installation classique, il est impossible de répondre à cette flexibilité.
Le premier problème se pose lors du partage de code. Vous envoyez un notebook à un collègue, mais il ne peut pas l'exécuter. Pourquoi ? Vos versions de packages diffèrent. Par exemple, votre Pandas 2.0 utilise une syntaxe incompatible avec son Pandas 1.5.
Le deuxième problème concerne les conflits de dépendances. Certains packages nécessitent des versions spécifiques qui ne sont pas compatibles entre elles. Par exemple, un package peut exiger NumPy 1.24, tandis qu'un autre refuse toute version supérieure à 1.23. C'est ce qu'on appelle l'enfer des dépendances (dependency hell).
Enfin, le troisième problème survient avec les mises à jour. Une nouvelle version majeure de Python ou d'un package peut offrir des performances améliorées, mais son installation risque de casser votre code existant. Vous êtes alors confronté à un dilemme : rester sur une ancienne version ou prendre le risque de tout casser.
Ces défis ont conduit la communauté Python à développer des outils modernes pour gérer ces
complexités. Ces outils permettent d'installer plusieurs versions de Python en parallèle et de créer
des environnements isolés pour chaque projet. Dans cette section, nous utiliserons uv
, un
outil qui automatise la gestion des versions et des dépendances de manière efficace.
📚 Pourquoi choisir uv ?
uv
combine plusieurs fonctionnalités importantes pour les développeurs Python :
- Gestion des versions Python : uv permet d'installer et de gérer plusieurs
versions de Python, comme
pyenv
. - Création d'environnements virtuels isolés : uv facilite la gestion des environnements spécifiques à chaque projet.
- Résolution intelligente des dépendances : uv gère efficacement les
dépendances et sous-dépendances, à l'image de
Poetry
. - Installation rapide des packages : Écrit en Rust, uv est jusqu'à 100 fois
plus rapide que
pip
.
Installation uv
La communauté Python s'oriente désormais vers des outils modernes et performants pour gérer
l'installation de Python. Écrit en Rust, uv
combine la gestion des versions de Python,
des environnements virtuels et des packages en un seul outil puissant et simple à utiliser.
Avec uv
, chaque projet dispose d'un environnement virtuel isolé, incluant sa propre
version de Python et ses dépendances. Cela évite les conflits entre projets et garantit une
compatibilité parfaite. Vous pouvez ainsi gérer plusieurs versions de Python et de packages sans
affecter le reste de votre système.
En plus de sa simplicité, uv
automatise la gestion des environnements et des dépendances.
Il permet également de partager facilement un projet grâce à ses fichiers de configuration, assurant
une reproduction fidèle de l'environnement, quel que soit le système d'exploitation utilisé (Windows,
macOS, Linux).
Avantages de uv :
- Installation automatique : uv télécharge et installe les versions manquantes
- Pas de compilation : uv utilise des binaires pré‑compilés
- Gestion intégrée : versions Python, venv et packages
Installation macOS
brew install uv
Linux / WSL2
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Vérification : uv --version
Installer une version Python avec uv
# Versions installées
uv python list --only-installed
# Toutes les versions disponibles
uv python list
# Installer une version spécifique
uv python install 3.11
# Installer plusieurs versions
uv python install 3.10 3.11 3.12
Configuration des versions Python avec uv
uv adopte une logique par projet pour garantir reproductibilité et isolation :
# Dans votre répertoire de projet
uv python pin 3.11
# Vérifier la version active
uv run python --version
# Afficher le chemin Python utilisé
uv run which python
Configuration de votre environnement virtuel
uv gère aussi vos environnements sans recourir à venv ou virtualenv :
# Créer un venv avec une version précise
uv venv --python 3.11
Vous verrez un message du type : Using Python 3.11.5 interpreter.
pyproject.toml : le standard moderne pour les projets Python
Le fichier pyproject.toml
a été introduit pour résoudre les problèmes liés à la
fragmentation des outils de gestion de projets Python. Avant son adoption, les développeurs jonglaient
avec plusieurs fichiers : setup.py
pour setuptools
,
requirements.txt
pour pip
, et chaque outil moderne (comme
Poetry
ou Flit
) développait ses propres conventions. Cette multiplication
des formats compliquait la compatibilité et la maintenance des projets.
Avec la PEP 518 (2016) et la PEP 621 (2020), pyproject.toml
est devenu le standard unifié
pour décrire les métadonnées et les dépendances d'un projet Python. Ce fichier centralise toutes les
informations essentielles de votre projet : son nom, sa version, ses dépendances, et même la
configuration des outils de développement. Pensez-y comme la "carte d'identité" complète de votre
projet, facilitant la gestion et le partage.
Comment uv utilise pyproject.toml ?
uv
s'appuie sur le fichier pyproject.toml
en respectant le standard défini
par la PEP 621. Cela garantit une compatibilité avec l'écosystème Python moderne :
- Les dépendances sont déclarées dans la section
[project.dependencies]
. - La configuration spécifique à
uv
est stockée dans la section[tool.uv]
. - Le fichier reste lisible par d'autres outils respectant la PEP 621.
Les avantages de l'approche uv
L'un des points forts de uv
est sa capacité à générer un fichier uv.lock
. Ce
fichier verrouille les versions exactes des dépendances, garantissant une
reproductibilité de l'environnement. De plus, uv
peut lire les fichiers
pyproject.toml
créés par d'autres outils, ce qui facilite la migration depuis des
gestionnaires comme Poetry
ou pip
.