Fermer

décembre 27, 2019

11 conseils pour assurer une migration transparente vers Python 3


Facteurs à considérer lors de la migration de votre code vers Python 3

Il est clair que Python 2 prendra fin le 1er janvier 2020. La Python Software Foundation (l'organisation derrière Python) a déclaré que Python 2 ne serait plus amélioré. après ce jour et aucun support ne sera fourni aux utilisateurs existants de Python 2 même s'ils trouvent un problème de sécurité. La seule option est de passer à Python 3 dès que possible. La migration de votre suite commerciale d'une ancienne vers une nouvelle version logicielle s'accompagne de ses propres défis. Comment garantir une migration réussie et fluide vers Python 3? Voici une ligne directrice qui aborde les conditions préalables et les considérations clés.

Lecture connexe: Passer à Python 3: est-ce une décision appropriée pour votre entreprise?

Étapes à suivre pour migrer avec succès vers Python 3

Les étapes ou actions recommandées sont de suivre les étapes intermédiaires de la modernisation progressivement et en réglant progressivement les problèmes. Simultanément, il est également important de viser la compatibilité intergénérationnelle sans remplacer complètement le code. Un processus de migration transparent nécessite les étapes suivantes:

1. Suppression de la prise en charge de Python 2.6 et des versions antérieures

Il convient de noter que Python 2.6 n'est plus pris en charge librement et ne reçoit pas de correctifs de bogues. Par conséquent, la résolution des problèmes rencontrés lors de l'utilisation de Python 2.6 ou d'anciennes versions sera difficile. Par exemple, Pylint qui est utilisé pour configurer une couverture Linter n'est pas pris en charge par Python 2.6.

2. Spécifiez une prise en charge de version appropriée dans le fichier setup.py

Dans le fichier setup.py, un classificateur de trove approprié doit être mentionné. Cela vous aidera à déterminer si tous les packages sont compatibles avec Python 3.

3. Assurer une couverture de test appropriée

Une couverture de test appropriée peut éviter de nombreux bogues en production. Par exemple, votre suite de tests doit avoir une couverture de code d'au moins 80%. La couverture du code vous permettra de savoir combien de code source est exécuté pendant les tests. coverage.py est l'outil le mieux recommandé pour mesurer votre couverture de test.

4. Mettre à jour votre code

La plupart des projets incluront plusieurs dépendances tierces. Il est donc important de s'assurer que tous les packages tiers sont compatibles. Vous pouvez choisir entre deux outils, à savoir Futurize et Modernize pour porter automatiquement votre code.

5. Division

Python 3 évalue 5/2 == 2,5 et non 2. Cela signifie que toutes les divisions de valeurs int en Python 3 donnent une valeur flottante . En parcourant votre code et en ajoutant la division from_future_import à vos fichiers et en mettant à jour l'opérateur de division en // ou en utilisant la division au sol, cela sera nécessaire.

6. Comprendre la confluence du texte et des données binaires

Il est important de décider quelles API prennent le texte et lesquelles prennent les données binaires. Par exemple, Python 2 s'est assuré que les API qui prennent du texte fonctionnent avec Unicode et les API qui prennent des données binaires fonctionnent avec des octets. Cependant, Python 3 prend le texte en str et le binaire en octets. De plus, Python 3.5 ajoute la méthode _mod_ au type d'octets.

7. Utiliser la détection des fonctionnalités au lieu de la détection des versions

Le recours à la détection des fonctionnalités permet d'éviter les problèmes potentiels d'erreurs de compatibilité. Par exemple, supposons que vous ayez besoin d'accéder à une fonctionnalité de importlib qui est disponible dans la bibliothèque standard de Python depuis la version Python 3.3. Considérez le fait qu'il est également disponible pour Python 2 via importlib2 sur PyPI. Dans cette situation, il est très courant d'écrire du code à l'aide de la version. Cela créera des problèmes avec Python 4. Il est donc préférable d'utiliser la détection des fonctionnalités.

8. Empêcher les régressions de compatibilité

Une fois le code traduit et rendu compatible avec Python 3, il est important de s'assurer que le code ne régresse pas. Vous pouvez utiliser le Pylint pour la même chose. Exemple, pip install pylint.

9. Vérifiez les dépendances qui peuvent bloquer votre transition

Le caniusepython3 vous aidera à déterminer tous les projets qui, directement ou indirectement, peuvent bloquer votre transition vers Python 3.

10. Intégration continue pour garantir la compatibilité

Il est important d'exécuter vos tests sous plusieurs interprètes Python tels que tox en les intégrant à votre système.

11. Utilisation de la vérification de type statique facultative

Un vérificateur de type statique tel que mypy ou pytype sur votre code vous aidera à porter votre code. Il analyse votre code et vérifie s'il peut également fonctionner sur Python 3. Par exemple, si vous avez tendance à abuser d'un type de données binaire dans une version particulière de Python, l'exécution d'un vérificateur de type statique résoudra le problème.

La Python Software Foundation propose un guide complet sur la manière d'obtenir une compatibilité intergénérationnelle pour les entreprises qui nécessitent Python 2 et 3 pour fonctionner simultanément. Vous trouverez plus de directives et d'étapes à noter lors de la migration vers Python 3 dans ces endroits:

Pour en savoir plus sur la migration vers Python 3 en toute transparence, restez à l'écoute de nos derniers articles et blogs. Si vous recherchez un partenaire technologique pour aider votre entreprise à se transformer avec les dernières tendances numériques, alors contactez avec nos experts dès aujourd'hui!




Source link