Compatibilité de Python 2 avec Google Cloud

La communauté Python a annoncé l'abandon de Python 2 au 1er janvier 2020, et encourage tous les développeurs à passer à Python 3 dès que possible. Sachant que les clients peuvent avoir besoin de plus de temps pour passer de Python 2 à Python 3, nous avons décidé que les clients Google Cloud pourraient exécuter des applications Python 2 et utiliser les bibliothèques clientes Python 2 existantes même après le 1er janvier 2020.

Les services de calcul gérés, tels qu'App Engine, continueront à fournir un environnement d'exécution Python 2 après le 1er janvier 2020. Les bibliothèques clientes Python 2 continueront à être téléchargeables, mais les futures versions majeures ne seront compatibles qu'avec Python 3.

Cette page présente un récapitulatif sur la compatibilité de Python 2 et 3 avec Google Cloud et propose des ressources pour vous aider à migrer vers Python 3. Nous garderons cette page à jour avec les informations les plus récentes.

État de la compatibilité avec Python 2

Bibliothèques clientes Google Cloud Python

Les nouvelles versions majeures des bibliothèques clientes Python publiées après le 1er janvier 2020 ne seront pas compatibles avec Python 2.7. Afin d'assurer la prise en charge des utilisateurs développant en Python 2.7, les précédentes versions majeures continueront à être téléchargeables et à permettre l'accès aux points de terminaison de service existants.

Si une faille est détectée dans une ancienne version de bibliothèque ou dans une dépendance de bibliothèque d'une ancienne version, il n'est pas prévu de publier de correctif.

Environnement d'exécution Python 2.7 d'App Engine

Nous nous engageons à offrir une compatibilité à long terme pour l'environnement d'exécution Python 2.7 d'App Engine, perpétuant ainsi notre tradition qui consiste, depuis plus de 10 ans déjà, à assurer la compatibilité de vos applications en suivant votre propre rythme.

Afin d'assurer la compatibilité de l'environnement d'exécution Python 2.7 sur le long terme, nous allons apporter les modifications suivantes au fil du temps :

  • Rétablissement des environnements d'exécution à leur état Open Source non dérivé, dans la mesure du possible. Nous avons dû modifier et fortement restreindre certains environnements d'exécution pour pouvoir exécuter vos applications de manière sécurisée dans nos centres de données. En modifiant la manière dont nous utilisons des environnements d'exécution dans nos centres de données, nous sommes en mesure de leur fournir un environnement sécurisé et évolutif sur le long terme.

  • Ajout de systèmes de compilation complets compatibles avec les dépôts de packages, les compilations de composants natives et les dépôts d'éléments.

Pour en savoir plus sur la compatibilité à long terme de l'environnement d'exécution Python 2.7 d'App Engine, consultez le plan de compatibilité à long terme d'App Engine.

SDK Cloud

La version 274.0.0 du SDK Cloud est compatible avec Python 3. Les anciennes versions du SDK Cloud resteront disponibles en téléchargement, mais nous vous recommandons d'utiliser la version 274.0.0 ou ultérieure et de migrer vers Python 3 dès que possible.

Pour savoir comment configurer le SDK Cloud pour utiliser Python 3, consultez la page Utiliser Python 3.

Certains outils Python du SDK Cloud (autres que l'outil de ligne de commande gcloud) nécessitent toujours un interpréteur Python 2.7. Pour plus de détails, exécutez la commande suivante : gcloud topic startup.

Modèles Deployment Manager

Nous pensons que la plupart des modèles Deployment Manager continueront à fonctionner avec Python 3. Si vous utilisez du code Python supplémentaire avec vos modèles, tels que des scripts d'aide ou des modules de modèle, assurez-vous qu'ils sont compatibles avec Python 3.

Afin de vous préparer au mieux pour passer de Python 2.7 à Python 3.x, consultez la documentation de Deployment Manager.

Dataflow

Depuis le 7 octobre 2020, Dataflow n'est plus compatible avec les pipelines Python 2. En raison de l'évolution du secteur et de l'abandon de la compatibilité avec Python 2 dans Apache Beam, Dataflow ne peut pas garantir de disponibilité fonctionnelle ni de maintenance à long terme concernant l'offre Python 2.

Vous pouvez exécuter vos pipelines Python par lots et par flux existants sur Python 3 à l'aide du SDK Apache Beam le plus récent. Nous vous recommandons de vérifier que le code de votre pipeline est compatible avec Python 3 en suivant la documentation relative au portage du code Python 2 vers Python 3.

Pour les problèmes connus liés à la migration vers Apache Beam Python 3, consultez les questions fréquentes dans l'outil de suivi BEAM-1251. Pour en savoir plus sur l'état de la compatibilité des SDK Apache Beam 2.x, consultez la page État de la compatibilité des versions du SDK.