Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Python, JavaScript, C, PHP, algorithmes, IDE
mehdi2001
Messages : 599
Inscription : mar. mai 19, 2026 7:24 pm

Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Message par mehdi2001 »

Hello la commu ! On prépare la migration de notre codebase (150k lignes) de Python 3.8 à 3.11. Des retours d'expérience ? J'ai entendu parler de soucis avec les annotations de type...
le_julien
Messages : 280
Inscription : sam. sept. 28, 2024 7:24 pm

Re: Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Message par le_julien »

Je l'ai fait l'an dernier ! Le plus chiant ça a été les dépendances (numpy/pandas en particulier). Prévois un venv propre et teste chaque lib une par une. La 3.11 est plus stricte sur les types, effectivement.
admin_sys_gaming
Messages : 571
Inscription : sam. janv. 20, 2024 7:24 pm

Re: Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Message par admin_sys_gaming »

Attention aux f-strings avec des backslashes, la syntaxe a changé en 3.11. J'ai perdu 2 jours à debugger ça... Sinon le gain de perf vaut carrément le coup, on a gagné 15-20% sur notre ETL.
mehdi2001
Messages : 599
Inscription : mar. mai 19, 2026 7:24 pm

Re: Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Message par mehdi2001 »

Merci ! Vous avez utilisé quel outil pour checker la compatibilité ? J'ai testé `2to3` mais il est un peu vieux. PyCharm détecte bien les problèmes ?
le_julien
Messages : 280
Inscription : sam. sept. 28, 2024 7:24 pm

Re: Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Message par le_julien »

PyCharm aide mais c'est pas magique. On a codé un script custom avec `ast` pour parser les nouveautés incompatibles. Et bien sûr... des tests unitaires à fond !
la_jojo06
Messages : 26
Inscription : mar. juin 02, 2026 7:25 pm

Re: Migration Python 3.8 vers 3.11 : retour d'expérience et pièges à éviter

Message par la_jojo06 »

N'oubliez pas les décorateurs ! La syntaxe `@(lambda...)` qui marchait en 3.8 plante en 3.11. Et vérifiez vos chemins Windows si vous êtes sous Linux, les normalisations de path ont changé.
Répondre