|

Installer Python avec uv, VS Code et Jupyter : un poste prêt pour le machine learning

Poste de travail pour installer Python avec uv : ordinateur portable affichant un éditeur, des cellules de notebook et un terminal, avec un carnet et une broche Python.

Installer Python ne suffit pas pour gérer efficacement un projet. Il faut aussi isoler ses bibliothèques dans un environnement virtuel, gérer leurs versions et pouvoir reconstituer cet environnement sur un autre ordinateur. Plusieurs outils répondent à ces besoins, avec des rôles différents : pip, venv, Conda, Poetry ou encore Pipenv.

uv, développé par Astral en Rust, réunit ces opérations dans un même outil : installer des versions de Python, initialiser un projet, créer son environnement virtuel et gérer ses dépendances. Cette approche permet de suivre un même flux de travail tout au long du tutoriel.

La figure 1 illustre aussi sa rapidité dans un cas précis : l’installation des dépendances de Trio, comparée à Poetry, PDM et pip-sync. Le test utilise un cache déjà rempli, c’est-à-dire des paquets conservés sur l’ordinateur après une installation précédente.

Comparaison des temps d’installation des dépendances de Trio avec un cache déjà rempli : uv est le plus rapide, devant Poetry, PDM et pip-sync.
Figure 1 — Temps d’installation des dépendances de Trio avec un cache déjà rempli. Source : Astral, présentation de uv ; protocole des tests de performance.

Dans ce tutoriel, nous utiliserons uv pour préparer le projet D:\ML-projects\projet-ia, installer ses bibliothèques et configurer VS Code et Jupyter. Vous créerez ensuite TesterProjet.ipynb pour vérifier le Python du noyau et les versions des bibliothèques. La lecture des données sera abordée dans la prochaine leçon.

1. Comprendre les outils et le choix de uv

Ces outils ont des rôles distincts. Python est le langage ; son interpréteur est le programme qui exécute le code. Une bibliothèque fournit du code réutilisable : pandas, par exemple, permet de lire et de manipuler des tableaux. Une bibliothèque nécessaire au projet devient une de ses dépendances.

VS Code est l’éditeur dans lequel vous organisez les fichiers et écrivez le code. Un notebook Jupyter est un document .ipynb composé de cellules de texte et de code, avec leurs sorties. Le noyau est le processus qui exécute ces cellules et conserve les variables en mémoire. L’extension Jupyter de VS Code fournit l’interface ; ipykernel, installé dans le Python choisi, permet l’exécution des cellules Python. Voir la documentation Microsoft sur les noyaux.

Pourquoi créer un environnement virtuel ?

Un environnement virtuel est un dossier qui contient un exécutable Python propre au projet et ses bibliothèques, isolées par défaut de celles des autres installations. Dans ce guide, ce dossier s’appelle .venv. La documentation Python sur les environnements virtuels explique cette isolation : plusieurs projets peuvent ainsi utiliser des versions différentes d’une même bibliothèque. Vous pouvez conserver Anaconda ou une autre installation de Python. Pour ce projet, le notebook doit utiliser le Python de sa .venv comme noyau.

Sur le disque, la .venv contient le Python local et ses bibliothèques ; en mémoire, ce Python démarre le noyau qui exécute les cellules envoyées par le notebook dans VS Code.
Figure 2 — Environnement virtuel et noyau. La .venv conserve le Python et ses bibliothèques sur le disque. Le noyau, actif en mémoire, utilise cet interpréteur pour exécuter les cellules et renvoyer leurs sorties. sys.executable permet de vérifier le chemin de l’exécutable.

La figure 2 distingue deux niveaux. Sur le disque, .venv conserve l’exécutable et les paquets installés. Sous Windows, leurs chemins sont .venv\Scripts\python.exe et .venv\Lib\site-packages. Sur macOS ou Linux, l’exécutable est généralement .venv/bin/python. En mémoire, VS Code affiche le notebook et envoie son code au noyau ; celui-ci exécute les cellules, importe les bibliothèques de son environnement et renvoie les résultats.

Créer la .venv et y installer les bibliothèques ne suffit donc pas : il faut aussi démarrer le noyau avec son Python. Le dossier reste présent lorsque le noyau s’arrête, mais les variables du processus sont perdues. Le fichier .ipynb, lui, conserve les cellules et les sorties enregistrées ; rouvrir une ancienne sortie ne recrée pas les variables qui l’ont produite.

uv est un outil de gestion de Python et de projets Python développé par Astral. Nous l’utilisons pour installer Python, créer le projet, ajouter ses dépendances et lancer le code dans sa .venv. Ces fonctions sont décrites dans la documentation de uv.

Pour approfondir : comparer uv, pip, conda et Poetry
OutilRôle et intérêt
pipInstalle des paquets Python dans un environnement. Le flux classique l’associe à venv et à des fichiers de dépendances.
condaGère des environnements et des paquets Python ou non Python, depuis des canaux de distribution.
PoetryGère les dépendances, les environnements, un fichier de verrouillage et la construction de paquets Python.
uvRéunit la gestion de Python, des environnements, des dépendances et de l’exécution. Utilise un cache partagé et uv.lock.

pip installe des paquets dans un Python identifié ; conda gère des environnements et des paquets Python ou non Python ; Poetry organise les dépendances et la distribution de projets Python. Le choix de uv permet ici de suivre un seul flux de travail. Retrouvez les usages de pip, la gestion des environnements conda et la prise en main de Poetry.

2. Installer Python avec uv sous Windows

Ouvrez PowerShell depuis le menu Démarrer. Un terminal est une interface dans laquelle vous saisissez des commandes ; PowerShell est le programme qui les interprète ici. Nous utiliserons ensuite le terminal PowerShell intégré à VS Code.

Vérifier ou installer uv

Commencez par vérifier s’il est déjà disponible :

⌘ Windows PowerShell
# Vérifier la version de uv
PS C:\WINDOWS\system32> uv --version
uv 0.12.23

Si un numéro de version s’affiche, passez à l’installation de Python ci-dessous. La sortie montrée est abrégée : uv peut aussi afficher des informations de compilation. Si Windows indique que uv n’est pas reconnu, utilisez la commande Windows de l’installateur officiel Astral :

⌘ Windows PowerShell
# Installer uv avec le script officiel
PS C:\WINDOWS\system32> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Cette commande télécharge et exécute l’installateur depuis le domaine d’Astral. L’option ByPass permet l’exécution du script dans le processus PowerShell lancé par cette commande. Elle ne modifie pas durablement la stratégie d’exécution du système ; une stratégie de groupe peut toutefois rester prioritaire. Voir les stratégies d’exécution PowerShell.

Après l’installation, fermez puis rouvrez PowerShell et relancez uv --version, afin que le terminal retrouve le nouvel exécutable. Sur mon ordinateur, uv était déjà installé ; une réinstallation n’était pas nécessaire.

Installer la version de Python du projet

⌘ Windows PowerShell
# Installer Python 3.14 avec uv
PS C:\WINDOWS\system32> uv python install 3.14
Python 3.14 is already installed

Nous utilisons la version 3.14 de Python, compatible avec les bibliothèques utilisées dans cette leçon. La sortie ci-dessus indique que cette version était déjà installée. Sur un nouveau poste, uv la téléchargera. uv sait installer et retrouver Python sans installation manuelle préalable depuis python.org.

Via uv, où Python est-il installé ?

La commande uv python install 3.14 installe par défaut CPython, l’implémentation de référence du langage Python, définie dans le glossaire Python. uv conserve cette installation dans son dossier des versions de Python, en dehors du projet. Avec uv 0.12.23 sur notre ordinateur, ce dossier est C:\Users\Nitro\AppData\Roaming\uv\python. Dans ce chemin, Nitro est le nom du compte Windows utilisé pour les captures. Pour connaître l’emplacement de CPython sur votre ordinateur, lancez :

⌘ Windows PowerShell
# Afficher le dossier des installations Python gérées par uv
PS C:\WINDOWS\system32> uv python dir
C:\Users\Nitro\AppData\Roaming\uv\python

Cette installation de CPython peut servir de base à plusieurs projets. À l’étape suivante, nous créerons l’environnement virtuel propre à cette leçon dans D:\ML-projects\projet-ia\.venv. Les bibliothèques du projet seront installées dans cette .venv, dont le Python sera ensuite choisi comme noyau dans VS Code.

3. Créer le projet et sa .venv

Un projet regroupe le code, ses données et ses réglages. Dans l’Explorateur Windows, créez le dossier parent D:\ML-projects s’il n’existe pas, puis placez-vous dedans avec PowerShell. Ce chemin correspond à l’emplacement des captures : adaptez-le à votre ordinateur. Dans les blocs suivants, saisissez seulement les commandes.

⌘ Windows PowerShell
# Se placer dans le dossier de projets
PS C:\WINDOWS\system32> Set-Location -LiteralPath "D:\ML-projects"

Initialisez le projet depuis ce dossier parent :

⌘ Windows PowerShell
# Créer le projet d’application Python
PS D:\ML-projects> uv init --app --no-package --vcs none projet-ia --python 3.14
Initialized project `projet-ia` at `D:\ML-projects\projet-ia`

uv init crée les fichiers du projet. --app --no-package prépare une application simple sans structure de paquet à distribuer ; --vcs none évite de créer un dépôt Git à cette étape ; --python 3.14 choisit la version de Python. Entrez ensuite dans projet-ia, puis affichez son contenu avec ls, l’alias PowerShell de Get-ChildItem.

⌘ Windows PowerShell
# Entrer dans le dossier du projet
PS D:\ML-projects> cd projet-ia
⌘ Windows PowerShell
# Lister le contenu du dossier
PS D:\ML-projects\projet-ia> ls

Répertoire : D:\ML-projects\projet-ia

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        10/10/2026     08:34              5 .python-version
-a----        10/10/2026     08:34             87 main.py
-a----        10/10/2026     08:34            155 pyproject.toml
-a----        10/10/2026     08:34              0 README.md

Cette sortie montre les quatre fichiers créés par uv init.

Créer l’environnement virtuel avec uv

Depuis projet-ia, créez explicitement la .venv avec le Python de la série 3.14 :

⌘ Windows PowerShell
# Créer l’environnement .venv avec Python 3.14
PS D:\ML-projects\projet-ia> uv venv --python 3.14
Using CPython 3.14.8
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate

Dans la capture, uv utilise CPython 3.14.8 et crée D:\ML-projects\projet-ia\.venv. La ligne Activate with: indique une possibilité d’activation ; celle-ci n’est pas nécessaire pour les commandes de projet uv. Voir la documentation de uv venv. Lancez le script créé par l’initialisation :

⌘ Windows PowerShell
# Exécuter main.py dans l’environnement du projet
PS D:\ML-projects\projet-ia> uv run main.py
Hello from projet-ia!

Le message Hello from projet-ia! confirme que le programme s’exécute. uv run utilise le Python de la .venv sans activation manuelle. Toutes les commandes uv add, uv run et uv sync de la suite se lancent depuis projet-ia, là où se trouve pyproject.toml. Les sorties PowerShell reproduites dans ce guide correspondent aux captures de cette installation ; les temps de traitement varient selon le poste.

4. Ajouter les bibliothèques et comprendre les fichiers

Nous préparons pandas pour manipuler les tableaux et openpyxl pour lire les classeurs Excel .xlsx dans la prochaine leçon. ipykernel permettra dès maintenant d’exécuter les cellules Python du notebook.

Dans PowerShell, depuis projet-ia, lancez :

⌘ Windows PowerShell
# Ajouter pandas et openpyxl pour travailler avec Excel
PS D:\ML-projects\projet-ia> uv add pandas openpyxl
Resolved 8 packages in 390ms
Installed 7 packages in 1.95s
 + et-xmlfile==2.0.0
 + numpy==2.5.3
 + openpyxl==3.1.5
 + pandas==3.0.6
 + python-dateutil==2.9.0.post0
 + six==1.17.0
 + tzdata==2026.5

Ajoutez ensuite le noyau au groupe des outils de développement :

⌘ Windows PowerShell
# Ajouter ipykernel aux dépendances de développement
PS D:\ML-projects\projet-ia> uv add --dev ipykernel
Resolved 39 packages in 730ms
Installed 26 packages in 7.30s
 + asttokens==3.0.2
 + colorama==0.4.6
 + comm==0.2.3
 + debugpy==1.8.22
 + executing==2.2.1
 + ipykernel==7.4.0
 + ipython==9.17.1
 + ipython-pygments-lexers==1.1.1
 + jedi==0.20.0
 + jupyter-client==8.10.0
 + jupyter-core==5.9.1
 + matplotlib-inline==0.2.2
 + nest-asyncio2==1.7.4
 + packaging==26.3
 + parso==0.8.7
 + platformdirs==4.12.4
 + prompt-toolkit==3.0.53
 + psutil==7.2.2
 + pure-eval==0.2.4
 + pygments==2.21.0
 + pyzmq==27.2.0
 + stack-data==0.6.3
 + tornado==6.5.10
 + traitlets==5.16.1
 + typing-extensions==4.16.0
 + wcwidth==0.9.2

Les paquets supplémentaires sont des dépendances indirectes : les bibliothèques demandées en ont elles-mêmes besoin. Vous n’avez pas à saisir leurs noms. --dev place ipykernel dans le groupe dev, que uv synchronise par défaut. Pour un noyau Python local dans VS Code, l’extension Jupyter et ipykernel suffisent ; le paquet Python complet jupyter n’est pas requis. Cette configuration suit la procédure Astral pour VS Code. Les bibliothèques de graphiques et de machine learning seront ajoutées lorsqu’elles seront utiles.

pyproject.toml, uv.lock et .venv

Après uv add pandas openpyxl, les dépendances apparaissent dans deux fichiers et un dossier. Chacun a un rôle précis : déclarer les besoins du projet, conserver les versions choisies et installer les paquets. La figure 3 suit pandas dans ces trois étapes.

Du besoin déclaré à l’installation
  1. Déclarer pyproject.toml pandas>=3.0.6 Le projet demande pandas 3.0.6 ou une version supérieure compatible.
  2. Verrouiller uv.lock pandas : 3.0.6 uv enregistre la version exacte choisie et celles des dépendances indirectes.
  3. Installer .venv Python + pandas 3.0.6 L’environnement virtuel contient Python et les paquets prêts à être utilisés sur ce poste.
Figure 3 — Une règle, des versions exactes, un environnement installé. L’exemple suit pandas dans les fichiers et le dossier de ce projet.

Dans pyproject.toml, pandas>=3.0.6 est une contrainte de version : elle autorise pandas 3.0.6 ou une version supérieure, à condition que les autres exigences du projet soient respectées. Ce fichier exprime les besoins du projet.

uv effectue ensuite la résolution des dépendances : il choisit un ensemble de versions compatibles, en tenant compte aussi des bibliothèques nécessaires à pandas, comme NumPy. Le verrouillage enregistre ces choix exacts dans uv.lock. Dans ce projet, pandas est verrouillé à la version 3.0.6. Ces rôles sont détaillés dans la documentation sur la structure des projets uv.

Enfin, la synchronisation installe les paquets nécessaires dans .venv, l’environnement virtuel local du projet. Par défaut, uv add réalise les trois opérations : il ajoute les dépendances à pyproject.toml, met à jour uv.lock et synchronise .venv. Le fichier .python-version, distinct de ces trois éléments, indique la version de Python choisie.

Les commandes uv add ont rempli pyproject.toml. Voici son contenu dans la capture :

Fichier pyproject.toml déclarant Python 3.14, pandas, openpyxl et ipykernel dans le groupe dev.
Les dépendances dans pyproject.toml. pandas et openpyxl sont des dépendances du projet ; ipykernel appartient au groupe dev.

Dans la capture suivante de uv.lock, vous retrouvez la version exacte de pandas : 3.0.6. À l’étape 5, vous ouvrirez le dossier du projet pour retrouver ces fichiers dans l’Explorateur.

Extrait de uv.lock présentant pandas 3.0.6 et ses dépendances.
La version résolue dans uv.lock. L’entrée de pandas enregistre la version 3.0.6, sa source et ses dépendances.

Conservez et partagez pyproject.toml et uv.lock avec votre code. Le dossier .venv reste propre à votre poste : uv peut le recréer à partir de ces fichiers. Pour installer les dépendances verrouillées ou vérifier que l’environnement leur correspond, sans modifier le verrouillage, utilisez :

⌘ Windows PowerShell
# Synchroniser l’environnement à partir de uv.lock
PS D:\ML-projects\projet-ia> uv sync --locked
Resolved 39 packages in 40ms
Checked 33 packages in 8ms

Dans la capture, les paquets sont déjà installés : uv vérifie l’environnement. --locked provoque une erreur si le verrou doit être actualisé pour correspondre au projet. Le verrouillage facilite la reproduction des dépendances, sans garantir des résultats identiques sur tous les matériels et systèmes. Voir le verrouillage et la synchronisation.

5. Ouvrir le projet dans VS Code

Le projet et ses bibliothèques sont prêts. Nous allons maintenant ouvrir ce dossier dans VS Code pour créer le notebook et choisir son noyau. Si VS Code n’est pas encore installé, téléchargez l’installateur Windows depuis le site officiel, lancez-le, puis ouvrez l’application. La documentation Microsoft précise les options d’installation. Si VS Code est déjà installé, poursuivez directement en ouvrant le dossier.

Ouvrir le bon dossier

Dans PowerShell, depuis D:\ML-projects\projet-ia, lancez la commande montrée dans la capture :

⌘ Windows PowerShell
# Ouvrir le dossier du projet dans VS Code
PS D:\ML-projects\projet-ia> code .

Le point . désigne le dossier courant. Cette commande ouvre projet-ia dans VS Code. Si code n’est pas reconnu, ouvrez VS Code puis choisissez Fichier → Ouvrir le dossier et sélectionnez votre dossier projet-ia. L’Explorateur doit afficher .venv, pyproject.toml et uv.lock au premier niveau.

Installer les extensions Python et Jupyter

Ouvrez le panneau Extensions avec Ctrl+Maj+X. Recherchez ms-python.python, puis installez l’extension Python de Microsoft si elle manque. Elle apporte le support Python dans l’éditeur, notamment la sélection de l’interpréteur.

Extension Python de Microsoft installée dans VS Code, recherchée avec ms-python.python.
L’extension Python de Microsoft. Les boutons « Désactiver » et « Désinstaller » indiquent qu’elle est déjà installée.

Recherchez ensuite ms-toolsai.jupyter et installez l’extension Jupyter de Microsoft. Elle permet d’ouvrir les fichiers .ipynb, de choisir un noyau et d’exécuter les cellules.

Extension Jupyter de Microsoft installée dans VS Code, recherchée avec ms-toolsai.jupyter.
L’extension Jupyter de Microsoft. Elle fournit l’éditeur de notebook dans VS Code.

Le menu Terminal → Nouveau terminal ouvre un terminal intégré. Choisissez le profil PowerShell et vérifiez que son dossier courant est projet-ia.

6. Créer TesterProjet.ipynb et vérifier le noyau

Créer TesterProjet.ipynb dans le projet

Le projet est ouvert dans VS Code et les deux extensions sont installées. Créez maintenant votre notebook : ouvrez la palette avec Ctrl+Maj+P, lancez Create: New Jupyter Notebook (ou tout simplement créer un fichier avec l’extension .ipynb), puis enregistrez-le avec Ctrl+S sous le nom exact TesterProjet.ipynb, directement dans projet-ia, à côté de pyproject.toml.

Le bouton + Code ajoute une cellule exécutable ; + Markdown ajoute du texte. Dans la première cellule Code, saisissez :

Notebook TesterProjet.ipynb avec une cellule affichant la version de Python et son exécutable, avant la sélection du noyau.
La première cellule de TesterProjet.ipynb. Le notebook est enregistré dans le projet et contient le code qui identifie son Python.

Sélectionner la .venv du projet

  1. En haut à droite, cliquez sur Sélectionner le noyau.
  2. Si seuls des noyaux récents sont affichés, choisissez Sélectionner un autre noyau, puis Environnements Python / Python Environments.
  3. Choisissez l’environnement projet-ia associé à .venv\Scripts\python.exe. Dans la capture, il apparaît comme projet-ia (3.14.x) (Python 3.14).
  4. Vérifiez que ce chemin appartient à votre dossier de projet. Une installation Python globale ou l’environnement Conda base ne donne pas accès aux paquets de cette .venv.
Liste des noyaux de VS Code avec l’environnement projet-ia associé à .venv\Scripts\python.exe.
Le choix du noyau. L’entrée projet-ia indique .venv\Scripts\python.exe : c’est l’environnement préparé avec uv.

Le choix de l’interpréteur via Python: Select Interpreter sert aux fonctions Python de l’éditeur. Vérifiez aussi le noyau dans le notebook : il doit démarrer le Python de la .venv. Les libellés varient selon la langue et la version de VS Code ; le chemin de l’exécutable reste le repère décisif. Voir la gestion des noyaux dans VS Code.

Exécuter la cellule et contrôler le Python

Cliquez sur le triangle à gauche de la cellule, ou utilisez Ctrl+Entrée. La sortie apparaît sous la cellule. Un compteur comme [1] indique qu’elle a été exécutée. Dans la capture, la sortie indique Python 3.14.8 et le chemin du Python de la .venv :

Première cellule de TesterProjet.ipynb exécutée : Python 3.14.8 et exécutable Python de la .venv du projet.
Le Python utilisé par le notebook. La première cellule affiche Python 3.14.8 et l’exécutable de la .venv du projet.

sys.version.split()[0] extrait le numéro de version de Python. sys.executable indique le chemin du Python réellement lancé par le noyau, comme le précise la documentation Python. Le chemin affiché sur mon ordinateur est .venv\Scripts\python.exe.

Vérifier les bibliothèques dans une deuxième cellule

Ajoutez une deuxième cellule Code avec + Code, puis saisissez et exécutez :

Les deux cellules de TesterProjet.ipynb exécutées : Python 3.14.8, pandas 3.0.6, openpyxl 3.1.5 et ipykernel 7.4.0.
Les deux cellules exécutées dans TesterProjet.ipynb. La seconde affiche les versions de pandas, openpyxl et ipykernel.

Ces versions ont été vérifiées avec le noyau Python de la .venv du projet. import charge les bibliothèques ; pd est le nom court donné à pandas ; l’attribut __version__ affiche leur version. Si les trois lignes apparaissent sans erreur, ces paquets sont accessibles au notebook. Les versions peuvent différer si vous avez installé les dépendances plus tard ; la commande uv sync --locked permet de retrouver celles enregistrées dans votre verrouillage.

7. Redémarrer le noyau et exécuter tout

Refaire les vérifications depuis un noyau neuf

Le noyau conserve les variables en mémoire entre les cellules. Cliquez sur Redémarrer le noyau, puis sur Exécuter tout. Les deux cellules de TesterProjet.ipynb doivent réussir dans l’ordre : la première identifie le Python, la seconde affiche les versions des bibliothèques. Le redémarrage efface les variables du processus, sans supprimer la .venv ni ses paquets. Enregistrez ensuite avec Ctrl+S.

Les sorties enregistrées dans un notebook peuvent rester visibles après sa réouverture. Relancer les cellules vérifie la configuration actuelle.

Retrouver les fichiers du projet

TesterProjet.ipynb est votre document de travail ; .venv fournit le Python qui exécute ses cellules. pyproject.toml déclare les besoins et uv.lock garde les versions résolues. Vous avez maintenant les outils nécessaires pour poursuivre le parcours.

Explorateur VS Code de projet-ia : .venv, .python-version, main.py, pyproject.toml, README.md, TesterProjet.ipynb et uv.lock.
Les fichiers du projet dans VS Code. Le notebook est enregistré à côté de pyproject.toml et de uv.lock ; la .venv contient l’environnement local.

Pour vérifier que vous avez compris l’organisation, fermez puis rouvrez VS Code sur projet-ia. Ouvrez TesterProjet.ipynb, contrôlez son noyau et relancez les deux cellules. Vous devez pouvoir distinguer pyproject.toml, uv.lock, la .venv, le fichier .ipynb et le noyau actif.

Ressources pour poursuivre

Pour retrouver une commande, commencez par les projets uv et les notebooks dans VS Code. Pour comprendre les fichiers de configuration, consultez la structure des projets et les environnements Python dans VS Code.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *