
Il est tard, la vaisselle est rangée, et je me retrouve enfin face à mon écran dans le calme de la cuisine. J'avais prévu de finir ce petit script pour automatiser le tri de mes mails pro, mais Python en a décidé autrement : une ligne rouge vif barre mon écran avec ce message qui me donne des sueurs froides : 'ModuleNotFoundError'. C'est le genre de moment où j'ai juste envie de refermer l'ordinateur et d'aller me coucher.
Avant de plonger dans le vif du sujet, un petit mot en toute franchise : ce carnet contient quelques liens affiliés. Si vous passez par eux, je reçois une petite commission, mais pour vous, le prix reste strictement le même. Je ne partage ici que les outils qui m'ont vraiment aidée à ne pas abandonner, comme la méthode que j'ai suivie au tout début.
Le jour où j'ai compris que Python n'avait pas tout 'en stock'
Au début, naïvement, je pensais qu'en installant Python, j'avais accès à tout l'univers du code d'un coup. Un peu comme si j'achetais une cuisine équipée et que tous les ingrédients étaient déjà dans les placards. Mais en fait, Python, c'est plutôt comme une cuisine vide avec seulement le sel et le poivre. Pour faire des trucs un peu sympas, comme manipuler des fichiers Excel ou envoyer des mails, il faut aller chercher des outils supplémentaires dans un magasin géant qui s'appelle le Python Package Index (ou PyPI pour les intimes).
C'est là qu'intervient pip. C'est le livreur de la cuisine. On lui demande un outil, et il va le chercher sur Internet pour l'installer chez nous. J'ai appris que depuis la version 3.4 de Python, ce petit livreur est normalement déjà installé sur nos machines. Pourtant, la première fois que j'ai dû m'en servir, j'étais terrifiée à l'idée de toucher au terminal de mon ordinateur. Pour moi, le terminal, c'était le truc de pirate dans les films où on peut tout effacer par erreur.

L'erreur classique : le pip dans le mauvais trou
Je me souviens d'un samedi après-midi pluvieux à Clermont, il y a quelques semaines. J'essayais désespérément d'installer une bibliothèque. Dans mon tutoriel, il était écrit : 'tapez pip install pandas'. Alors, j'ai ouvert Python, j'ai attendu de voir les trois petits chevrons (>>>) et j'ai tapé la commande. Résultat ? 'SyntaxError'.
J'ai passé une heure à essayer toutes les variantes possibles : avec des guillemets, sans guillemets, en majuscules... Rien ne marchait. C'est en reprenant mes notes de ma Formation au langage Python que j'ai fini par comprendre : pip n'est pas du code Python. C'est un programme à part. On ne le lance pas *dans* Python, mais *pour* Python, depuis le terminal de l'ordinateur (l'invite de commande sur mon vieux Windows).
C'est à ce moment-là que j'ai eu cette sensation de vide dans l'estomac. J'avais tapé tellement de trucs bizarres dans mon terminal que j'étais persuadée d'avoir désinstallé Windows ou d'avoir ouvert une faille de sécurité majeure. Le ronronnement du ventilateur de mon vieil ordinateur portable qui chauffe sur la nappe en plastique de la cuisine n'aidait pas à calmer ma nervosité. Finalement, mon ordinateur allait très bien, c'est juste moi qui essayais de mettre la clé de la voiture dans la serrure de la boîte aux lettres.

Pourquoi il ne faut pas installer pip n'importe où
Une fois que j'ai réussi à faire fonctionner ma première commande, j'étais toute fière. J'installais tout et n'importe quoi. Mais un ami qui s'y connaît un peu m'a vite calmée. Il m'a expliqué que si j'installais tout directement dans mon système, j'allais finir par créer un énorme sac de nœuds. C'est son conseil que je garde précieusement : n'installez jamais de bibliothèques avec pip directement dans votre environnement système. Sur Linux ou macOS, cela peut même corrompre des dépendances critiques dont l'ordinateur a besoin pour démarrer !
La solution, c'est de créer des petits compartiments étanches pour chaque projet. J'en parlais d'ailleurs dans mon billet sur comment créer un environnement virtuel python pour mieux organiser ses codes. C'est la seule façon de dormir tranquille sans avoir peur que la mise à jour d'un outil ne casse tout le reste de votre travail de la veille.

La méthode propre pour installer sans stress
Aujourd'hui, après environ six mois de pratique, j'ai enfin une routine qui fonctionne. Quand je veux installer quelque chose, par exemple pour la version stable de Python 3.12 que j'utilise en ce moment, je procède toujours de la même manière :
- J'ouvre mon terminal (pas Python !).
- J'active mon environnement virtuel (mon petit placard dédié).
- Je tape ma commande :
python -m pip install le_nom_du_truc.
Le petit -m devant pip, c'est mon astuce de survie. Ça force l'ordinateur à utiliser le pip qui est lié à la version de Python que je suis en train d'utiliser. Ça évite bien des maux de tête quand on a plusieurs versions qui traînent. Et si je dois installer une version très précise (ce qu'ils appellent la PEP 508 dans les documents techniques), je peux même ajouter le numéro de version après le nom. Avec plus de 500 000 projets disponibles sur PyPI, on a vite fait de s'y perdre si on n'est pas rigoureuse.
Si vous débutez et que vous vous sentez un peu perdue dans ces histoires de terminaux et de commandes, ne vous flagellez pas. Il m'a fallu des semaines pour choisir une formation python qui m'explique ça avec des mots simples plutôt qu'avec des termes d'ingénieur. Parfois, il suffit juste qu'on nous dise que c'est normal de ramer au début.

Le petit plaisir du 'Successfully installed'
Je ne m'en lasse pas : voir ces quelques lignes de texte défiler et se terminer par 'Successfully installed'. C'est ma petite victoire de la soirée. Ça veut dire que je peux enfin retourner à mon script, importer mon module et voir mon code prendre vie. C'est un sentiment de puissance assez étrange pour quelqu'un qui, il y a peu, ne savait pas ce qu'était une ligne de commande.
Si vous avez encore peur de casser quelque chose, rappelez-vous mes astuces pour déboguer son code python sans perdre patience le soir. On fait tous des erreurs, on tape tous des commandes au mauvais endroit, et c'est souvent comme ça qu'on finit par comprendre comment la machine respire sous le capot. Maintenant, je vais pouvoir finir mon automatisation et peut-être même m'offrir un deuxième café avant que tout le monde ne se réveille dans la maison.
Si vous voulez vraiment gagner du temps et éviter mes crises de nerfs devant le terminal, je ne peux que vous conseiller de jeter un œil à la Formation au langage Python. C'est elle qui m'a permis de transformer mes soirées de frustration en moments de petits clics victorieux. Et si un jour vous saturez de Python, il y a toujours d'autres pistes comme le JavaScript, mais pour l'instant, je reste fidèle à mes serpents !