Versiones de Python compatibles

Cloud Composer 1 | Cloud Composer 2

Cloud Composer es compatible con Python 2 y Python 3.

Para ver las versiones de major.minor.patch de Python que se usan en una imagen específica de Cloud Composer, consulta la lista de versiones de Cloud Composer.

Cómo funciona el control de versiones de Python

Puedes crear entornos basados en Python 2 y Python 3 en el mismo proyecto de Google Cloud. Cada entorno puede usar solo una versión principal de Python: Python 2 o Python 3.

Puedes especificar la versión principal de Python cuando creas un nuevo entorno de Cloud Composer.

Después de crear un entorno, no puedes cambiar la versión principal de Python del entorno. Además, no es posible cambiar un entorno existente a una versión secundaria de Python diferente.

Acerca de la compatibilidad con Python 2

Cloud Composer admite Python 2 y continuará haciéndolo hasta que Airflow deje de ser compatible. Sin embargo, Python 2 alcanzó el final del ciclo de vida el 1 de enero de 2020, lo que puede generar limitaciones de compatibilidad para entornos de Python 2.

Los nuevos operadores, sensores y hooks de Airflow solo se desarrollan para Python 3, lo que puede hacer que las opciones de conectividad estén desactualizadas para los entornos de Python 2. Por lo tanto, recomendamos migrar tus DAG a un entorno de Python 3 y crear todos los entornos nuevos con Python 3.

Cómo afectan las versiones de Python a los DAG y las dependencias

Cuando instalas dependencias de Python desde el índice de paquetes de Python, la versión de Python del entorno determina qué pip instala el paquete. Por ejemplo, Python 3 usa pip3. Además, el comando pip apunta a pip3.

Debido a que el paquete de Python 3 incluye Python 2, surge el problema de qué intérprete de Python usar (PEP 394). Para los entornos de Python 3, el comando python apunta a python3.

Debido a que el final del ciclo de vida de Python 2 está programado, te recomendamos que uses explícitamente python2 o python3 en los operadores, como BashOperator y PythonOperators.

¿Qué sigue?