Activité pratique
Durée2h30Consignes globales
Cette activité se déroule en deux parties d’une durée équivalente, à faire dans l’ordre.
La première partie se fait volontairement à l’ancienne : un éditeur de texte basique et un terminal, rien d’autre. L’objectif n’est pas de vous compliquer la vie, mais de vous rendre capable de répondre précisément à la question « où est mon fichier, et depuis où est-il exécuté ? ». C’est la question qui se cache derrière la grande majorité des pannes que vous rencontrerez cette année.
La seconde partie installe l’outillage confortable que vous utiliserez ensuite pendant toute l’année : Visual Studio Code, ses extensions et le gestionnaire de projet uv. Vous y retrouverez, automatisées, exactement les opérations faites à la main dans la première partie.
Important
Pendant toute la première partie, n’ouvrez pas Visual Studio Code (ni PyCharm, ni Spyder, ni un notebook Jupyter). Utilisez uniquement l’éditeur de texte fourni avec votre système et un terminal. Vous installerez l’IDE en seconde partie, et vous comprendrez alors ce qu’il fait pour vous.
Les fiches de cours de la séance contiennent tout ce dont vous avez besoin : gardez-les ouvertes à côté.
Contenu de l’activité
Où est mon script ?
Cette partie s’appuie sur la fiche Exécuter un script Python depuis le terminal.
Savoir quel interpréteur vous utilisez
À faire
Déterminez la version de Python installée sur votre ordinateur. Si aucune n’est installée (ou si trop ancienne), installez Python.
Si Python n’est pas trouvé après installation, démarrez un nouveau terminal puis relancez la commande de vérification. Si cela ne marche toujours pas, vous avez probablement besoin d’ajouter le chemin du répertoire contenant l’interpréteur Python au PATH de votre système. La fiche Installer Python explique comment faire.
Construire votre arborescence à la main
Maintenant que Python est disponible, nous allons préparer un peu votre arborescence de fichiers pour la suite de vos études. Vous pourriez garder tous vos fichiers sur votre bureau ou dans le dossier de téléchargements par exemple, mais vous vous doutez bien que ce n’est pas une très bonne pratique, et que vous allez vous y perdre rapidement.
Nous vous suggérons de créer une arborescence de dossiers qui vous permettra de ranger vos fichiers de manière organisée. Par exemple, vous pouvez créer un dossier imt à la racine de votre dossier personnel, puis un dossier s5 dans imt, puis des dossier info/maths/physique/etc. dans s5, puis des dossiers pour chaque cours dans le dossier de la matière correspondante. Ce n’est pas grave d’avoir des dossiers imbriqués (au contraire, ça aide à s’y retrouver). En revanche, ce qui est important, c’est de savoir où vous vous situez exactement.
Vous allez créer les dossiers de travail depuis le terminal, et non depuis l’explorateur de fichiers. C’est un peu plus lent, mais vous saurez exactement où ils se trouvent.
À faire
Placez-vous à l’endroit où vous rangez vos documents de cours (dans l’exemple ci-dessous, Documents, mais choisissez ce qui vous convient), puis créez l’arborescence suivante :
Pour cela, vous aurez besoin des commandes suivantes :
-
Pour se déplacer dans le terminal :
-
Pour créer un dossier (dans le dossier courant) :
Écrire un script avec un éditeur de texte
Nous allons créer un fichier Python simple, nommé hello.py, contenant une seule ligne de code, affichant un message.
À faire
Suivez les étapes ci-dessous :
-
Ouvrez l’éditeur de texte de base de votre système :
L’application Notepad (Bloc-notes).
L’application Gedit (ou Text Editor), ou
nanodirectement dans le terminal.L’application TextEdit. Une fois ouverte, allez dans le menu Format et choisissez « Convertir au format texte » avant de taper quoi que ce soit : le format RTF n’est pas du texte brut.
-
Écrivez-y la ligne suivante, et rien d’autre :
-
Enregistrez le fichier sous le nom
hello.pydans le dossierDocuments/imt/s5/info/env/session2/(référez vous à votre arborescence créée plus haut).
Exécuter le script depuis trois endroits différents
À faire
Essayez d’exécuter le script via le terminal depuis chacun des dossiers suivants :
- Depuis le dossier
Documents/imt/s5/info/env/session2/. - Depuis le dossier
Documents/imt/s5/info/env/. - Depuis le dossier
Documents/imt/s5/maths/.
Notez que le dernier est un peu plus compliqué à exécuter que les autres, car le fichier n’est pas situé dans le dossier maths. Pour cela, deux solutions :
-
Adressage relatif — Vous pouvez utiliser les notations
..pour désigner le dossier parent. Ainsi, si vous êtes dansDocuments/imt/s5/maths/,..désigneDocuments/imt/s5/. Et si vous voulez trouver le fichierhello.py, vous devez utiliser le chemin../info/env/session2/hello.py. -
Adressage absolu — Vous pouvez utiliser le chemin absolu du fichier, qui est :
Avec ce format, on donne l’adresse complète depuis la racine du disque, pas relative au dossier courant.
Le vrai piège : les chemins utilisés par le script lui-même
Jusqu’ici, seul l’emplacement du script comptait. Regardons ce qui se passe quand le programme lit lui-même un fichier. Pour cela, créons un nouveau script, qui fera la moyenne de nombres contenus dans un fichier.
-
Avec votre éditeur de texte, créez le fichier
mesures.txtdans le dossiersession2. Ce fichier contiendra trois nombres, un par ligne : -
Créez, dans
session2, un fichiermoyenne.pycontenant :
À faire
À présent, exécutez ce script depuis les trois emplacements suivants :
- Depuis le dossier
Documents/imt/s5/info/env/session2/. - Depuis le dossier
Documents/imt/s5/info/env/. - Depuis le dossier
Documents/imt/s5/maths/.
Que remarquez vous ?
Le chemin mesures.txt écrit dans le code est lui aussi un chemin relatif, et il est résolu par rapport au répertoire courant du terminal, pas par rapport au dossier où le script est rangé.
Retenez la formulation : un chemin relatif ne dit pas « à côté du script », il dit « à partir de là où on se trouve ». Voilà pourquoi un programme peut marcher chez vous et échouer chez un(e) camarade, ou marcher hier et échouer aujourd’hui, sans qu’une seule ligne ait changé.
À faire
Corrigez moyenne.py pour qu’il fonctionne quel que soit le répertoire courant, en calculant le chemin du fichier de données à partir de l’emplacement du script.
Puis réessayez depuis les trois mêmes emplacements que précédemment.
Pour cela, vous pouvez utiliser le code ci-dessous :
Un environnement de travail efficace
Cette partie s’appuie sur les fiches Les environnements de développement intégrés et VS Code et Gestion moderne de projet Python avec uv.
Installer VS Code et l’extension Python
Ce que nous avons fait dans la première partie est ce que les programmeurs ont fait pendant des décennies. Bien évidemment, nous disposons aujourd’hui d’outils bien plus sophistiqués, que nous allons découvrir ensemble. Nous avons choisi de privilégier VS Code, car il fait partie des outils les plus utilisés dans le monde du développement logiciel.
En deux mots, VS Code est un IDE, c’est à dire un logiciel qui intègre plusieurs fonctionnalités pour faciliter le développement logiciel, comme un éditeur de code, un terminal, des agents IA, des outils de débogage, etc.
À faire
- Installez Visual Studio Code en suivant la procédure de votre système décrite dans la fiche de cours.
- Lancez l’application, puis repérez les cinq zones de l’interface décrites dans la fiche.
- Ouvrez le panneau des extensions (
Ctrl+Shift+X/Cmd+Shift+X), recherchez l’extension Python publiée par Microsoft, et installez-la.
À présent, nous allons ouvrir votre dossier Documents/s5/info dans VS Code.
Important
Il y a plusieurs moyens d’ouvrir vos fichiers dans VS Code :
- Fichier seul — Comme pour les éditeurs de texte basiques, vous pouvez ouvrir juste un fichier.
- Dossier — Vous pouvez ouvrir un dossier entier, et VS Code affichera l’explorateur de fichiers dans la colonne de gauche.
- Workspace — Un workspace est une collection de dossiers, pas nécessairement au même endroit sur votre disque dur.
Dans le cadre de ce cours, vous travaillerez toujours avec des dossiers.
Ouvrir un dossier permet à VS Code de vous suggérer l’utilisation de fonctions existantes, et de détecter l’environnement virtuel à utiliser. C’est donc le choix à privilégier.
À faire
Ouvrez le dossier Documents/s5/info dans VS Code.
Utiliser uv pour les projets
Avant d’écrire des scripts, nous allons installer un outil permettant de bien gérer nos projets python : uv. Cet outil permet notamment de gérer les dépendances de nos projets (c’est-à-dire les bibliothèques Python utilisées) et les environnements virtuels (qui permettent de gérer les dépendances de manière isolée pour chaque projet).
Installer uv
À faire
- Installez
uven suivant la procédure de la fiche de cours. - Fermez puis rouvrez votre terminal, pour que la nouvelle valeur du
PATHsoit prise en compte. - Vérifiez l’installation avec
uv --version.
Initialiser un projet
Maintenant que uv est installé, nous allons l’utiliser pour créer un projet. Dans le cadre de ce cours, vous travaillerez toujours avec des projets créés avec uv. C’est un bon réflexe à prendre, car uv gérera quasiment tout pour vous (environnements virtuels, dépendances, etc.).
À faire
Dans un terminal, placez-vous dans votre dossier imt/info/env/session2 et créez un dossier nommé tuto_uv. Placez-vous dans ce nouveau dossier, puis initialisez le projet avec la commande ci-dessous.
Depuis l’arborescence de fichiers dans VS Code, explorez les fichiers créés par uv dans votre dossier tuto_uv. Vous devriez voir apparaître les fichiers suivants nécessaires à uv (ne pas se préoccuper des éventuels fichiers supplémentaires pour le moment) :
.python-version: définit la version de Python à utiliser pour le projet.pyproject.toml: fichier de configuration du projet.main.py: fichier principal du projet.README.md: fichier descriptif du projet.
Vous pouvez dès à présent exécuter le fichier main.py :
-
Soit dans votre terminal avec la commande suivante :
-
Soit dans VS Code directement, en ouvrant
main.pyet en cliquant sur le bouton “▷” en haut à droite.
Ajouter des dépendances
Imaginons que ce nouveau projet ait pour objectif de faire du calcul scientifique. Une bibliothèque Python pratique pour cela est numpy. En Python, pour utiliser une bibliothèque externe, il faut d’abord l’importer.
À faire
Dans le fichier main.py du dossier tuto_uv, ajoutez les lignes suivantes au début du fichier :
Exécutez de nouveau votre programme. Vous devriez obtenir une erreur similaire à celle-ci :
L’erreur ModuleNotFoundError signifie que Python n’a pas trouvé la bibliothèque numpy. Il va donc falloir l’installer.
À faire
Dans un terminal, placez-vous dans votre dossier tuto_uv et exécutez la commande ci-dessous.
Si tout s’est bien passé, uv a créé pour vous les fichiers suivants :
.venv: environnement virtuel contenant les bibliothèques Python installées.uv.lock: fichier contenant les versions exactes des bibliothèques installées.
De plus, uv a mis à jour pyproject.toml pour indiquer que votre projet dépend de numpy.
Exécutez à nouveau votre programme. Vous devriez maintenant obtenir la version de numpy installée.
Ouvrir le projet dans VS Code et vérifier l’interpréteur
Cliquez sur main.py dans l’explorateur de fichiers de VS Code. Notez en bas à droite de la fenêtre que VS Code a détecté l’environnement virtuel :

Si ce n’est pas le cas, cliquez sur le bouton et sélectionnez l’interpréteur Python de l’environnement virtuel. Une fois celui-ci sélectionné, VS Code ne soulignera plus en rouge import numpy, car il sait à présent où trouver la bibliothèque numpy.
Remarques importantes
Et voilà, vous avez mis en place un projet avec uv. Cela peut paraître fastidieux la première fois, mais ça devient très vite routinier.
Voici quelques conseils importants pour finir :
-
Dans un projet partagé avec
git(sujet de la session suivante), on ne transmet jamais le dossier.venv: il est volumineux et spécifique au système de chaque machine. Seulspyproject.tomletuv.locksont partagés. -
Dans l’UE d’informatique de première année, simplifiez-vous la vie en créant un projet par TP pour les parties algorithmique et programmation. Pour le projet PyRat, vous travaillerez avec un unique projet pour tout le semestre.
-
uvpermet bien plus de choses, nous avons choisi ici d’aller au plus direct pour démarrer un projet. En particulier, la commandeuv syncpermet d’installer toutes les dépendances spécifiées dansuv.lock. C’est très pratique quand on récupère un projet sur GitHub, par exemple.
Pour aller plus loin
Déboguer pas-à-pas
VS Code fournit un débogeur pas-à-pas pour Python, c’est-à-dire un outil qui permet de mettre en pause l’exécution d’un programme et d’inspecter l’état de ses variables.
Pour cela, il faut placer des points d’arrêt dans le code. Un point d’arrêt est une ligne de code à laquelle l’exécution du programme s’arrêtera. Pour ajouter un point d’arrêt, il suffit de cliquer dans la marge à gauche de la ligne de code : un disque rouge apparaît.
Ensuite, lancez le programme en mode débogage (touche F5). L’exécution s’arrêtera au premier point d’arrêt. Vous pouvez alors avancer pas-à-pas (touche F10) ou entrer dans les fonctions (touche F11).
Essayez avec le programme main.py du dossier tuto_uv.
Pour aller encore plus loin
Information
Y a-t-il quelque chose que vous auriez aimé voir ici ? Faites-le nous savoir sur le serveur Discord ! Peut-être pouvons-nous l’ajouter rapidement. Sinon, cela nous aidera à améliorer le cours pour l’année prochaine !