Page 1 sur 1
Migration Python 2 vers 3 : pièges et rétrocompatibilité
Publié : mar. mars 10, 2026 12:30 pm
par seb_tech
Hello ! Je dois migrer une vieille codebase Python 2.7 (oui, oui...) vers Python 3.9. Outre les print() et les unicode/bytes, quels sont les pièges moins évidents à anticiper ?
Re: Migration Python 2 vers 3 : pièges et rétrocompatibilité
Publié : mar. mars 10, 2026 5:30 pm
par antoine33
La division entière ! En Py2, 5/2 = 2. En Py3 ça devient 2.5. Utilise // si tu veux garder l'ancien comportement. Et teste TOUS tes maths, j'ai eu des bugs subtils là-dessus.
Re: Migration Python 2 vers 3 : pièges et rétrocompatibilité
Publié : mar. mars 10, 2026 7:30 pm
par guillaume
N'oublie pas les imports relatifs qui pètent en Py3, et les itérateurs (dict.items() renvoie une vue maintenant). Utilise 2to3 mais relis tout à la main, cet outil fait des bêtises sur les strings.
Re: Migration Python 2 vers 3 : pièges et rétrocompatibilité
Publié : mer. mars 11, 2026 5:30 am
par seb_tech
Merci ! Vous conseillez quoi pour gérer la transition ? Dois-je faire une branche py3 ou tenter une compatibilité cross-version avec six/future ?
Re: Migration Python 2 vers 3 : pièges et rétrocompatibilité
Publié : mer. mars 11, 2026 12:30 pm
par flo_sql
Franchement, branche direct. Six c'est bien mais ça alourdit le code. J'ai mis 3 mois à migrer 50k lignes, le plus dur c'était les libs obsolètes (genre MySQLdb → mysqlclient). Bon courage !