Mon Labo Python

Réussir à mettre à jour python windows sans casser ses anciens scripts

Mise à jour de Python sous Windows sur un ordinateur portable, sans perdre ses anciens scripts

Et si mettre à jour Python sous Windows effaçait d'un coup tous les petits scripts patiemment bricolés sur mon vieux portable, ceux qui font encore mes calculs de budget sans broncher ? Cette question de débutante en code, je me la suis posée bien avant de comprendre quoi que ce soit à la gestion des versions, et je n'ai pas de réponse toute faite à vous donner dans ce paragraphe.

Avant d'aller plus loin, un mot de transparence : ce carnet contient quelques liens affiliés, et si vous achetez quelque chose en passant par eux, je touche une petite commission sans supplément pour vous. Je ne parle ici que des outils que j'ai vraiment utilisés pour apprendre, comme le cours qui m'a servi de point de départ.

Risques de mettre à jour Python sous Windows

Quand j'ai ouvert la Formation au langage Python pour la première fois, j'étais fière comme un pape d'avoir écrit un script minuscule pour suivre mes dépenses. J'avais suivi à la lettre le guide pour installer Python sur Windows sans faire de bêtises de débutant, et tout tournait bien. Alors l'idée de passer à une version plus récente, celle dont tout le monde parlait sur les forums, me donnait des sueurs froides : allais-je devoir tout reconstruire depuis zéro ?

Ma réponse courte, après plusieurs mises à jour réussies depuis : non, une mise à jour ne casse rien toute seule. Ce qui casse, c'est la façon dont on s'y prend pendant l'installation, et c'est justement ce que personne ne m'avait expliqué au début.

Capture d'écran d'une installation de Python en cours sous Windows, barre de progression et invite de commandes

Ce qui a vraiment cassé, la première fois

La première fois, je n'avais pas vraiment compris ce que je faisais : j'essayais de retenir la manipulation par cœur, une suite de clics et de commandes, sans piger pourquoi Python range ses bibliothèques où il les range. Résultat, panique totale devant l'écran : je suis allée fouiller dans les dossiers du système et j'ai copié-collé à la main le dossier site-packages de l'ancienne version vers la nouvelle, en imaginant que c'était comme déplacer un dossier de photos de vacances. Spoiler : ça ne marche pas du tout comme ça, et mon script de budget a fini par me cracher un message d'erreur du genre ModuleNotFoundError, celui qui me fait le plus grincer des dents.

Le lanceur py, l'outil que j'ignorais complètement

C'est mon voisin de palier, Gaultier, qui m'a sortie de cette impasse. Administrateur systèmes de métier, il parle de Python avec une décontraction tranquille qui rassure autant qu'elle intimide un peu, un peu comme quelqu'un qui vous explique le fonctionnement d'un four à pain en passant, sans effort apparent. Il m'a montré qu'il existe sous Windows un lanceur, tout simplement appelé py, capable de choisir la bonne version pour chaque script sans qu'on ait besoin de désinstaller quoi que ce soit. Au lieu de crier après Python en espérant que la bonne version réponde, on demande poliment au lanceur laquelle utiliser, et il s'en charge.

Cocher la bonne case pendant l'installation

S'il ne fallait retenir qu'un geste, ce serait celui-là : cocher la case Add Python to PATH au moment de l'installation. Le PATH, c'est un peu comme les étagères où je range mes boîtes de thé : s'il y en a plusieurs avec la même étiquette et que rien n'indique laquelle prendre en premier, on tourne en rond avant de mettre la main sur la bonne. Depuis que je fais attention à n'avoir qu'une version dans ce chemin principal, et que je laisse le lanceur gérer le reste, je n'ai plus ce genre de confusion.

Ça m'a aussi rassurée de vérifier que les bases ne bougent pas d'une version à l'autre : mon petit mémo sur comment faire la somme d'une liste python pour ses premiers calculs fonctionne toujours exactement pareil, sans une virgule à changer.

Pour les bibliothèques, j'ai aussi appris à les réinstaller proprement avec pip plutôt que de les trimballer à la main d'un dossier à l'autre, ça évite bien des complications. Je commence tout juste à effleurer les environnements virtuels, un peu comme cuisiner dans des petits bols séparés pour ne pas mélanger les saveurs, mais je n'ai pas encore tout compris de ce côté-là.

Comment je vérifie que rien n'est cassé

Ma méthode est simple, presque bête : j'ouvre l'invite de commandes, je tape py --version, et pendant une seconde, plus un bruit. Juste le bon numéro affiché en blanc sur fond noir, sans la moindre ligne rouge en dessous, et ce silence-là devant l'écran vaut toutes les explications techniques du monde. Ce n'est qu'en refermant les mains autour de ma tasse que je remarque que l'anse a eu le temps de refroidir pendant que je fixais l'écran, tiède à nouveau seulement quand je la reprends un peu plus tard. Ensuite je relance mes anciens scripts un par un, avant de toucher à quoi que ce soit d'autre.

Et je ne supprime jamais l'ancienne version tant que je ne suis pas sûre à cent pour cent que la nouvelle tourne bien : une leçon apprise à mes dépens, la fois où j'ai voulu faire trop vite.

Je suis loin d'être la seule à stresser pour une mise à jour

Pas vraiment, à en croire les messages que j'échange avec Gwilherm, un technicien de maintenance croisé un jour sur un forum autour des boucles for. Lui apprend Python pour éplucher les données de ses machines, et il avance toujours par petits projets très concrets plutôt que par la théorie, ce qui me pousse à me demander vers quoi, moi, j'aimerais orienter mes propres scripts une fois les mises à jour dédramatisées. Il m'a raconté qu'une mise à jour mal négociée lui avait aussi fait perdre un script de suivi de capteurs pendant un moment, à cause d'une bibliothèque non réinstallée. Ça m'a rassurée : même quelqu'un qui code pour de vrai, au travail, peut se faire avoir par le même genre de détail.

Apprendre à coder après une journée de travail, ce n'est pas spectaculaire, mais ces petites victoires techniques finissent par compter double. Si l'idée de mettre à jour Python vous angoisse encore, je peux juste dire que reprendre les bases tranquillement aide énormément : la Formation au langage Python que j'ai suivie explique les choses simplement, sans jargon qui donne envie de refermer l'ordinateur, et c'est surtout ça qui m'a permis de comprendre ce que je faisais au lieu de recopier des commandes sans réfléchir. La prochaine question, elle, reste ouverte : la version d'après me fera-t-elle encore le coup du cœur qui s'accélère ?

Articles connexes