Python 38.8 ahora está disponible a nivel general.

Diferencias entre los entornos de ejecución de Python 2 y Python 3

El entorno de ejecución de Python 3 se basa en tres ideas principales:

  • Tu app usa la última versión del intérprete de código abierto de Python que proporciona Python Software Foundation.
  • Puedes usar el completo ecosistema de paquetes y marcos de trabajo de Python en tu app, incluso aquellos que usan código C, al declarar dependencias en un archivo requirements.txt.
  • No se requieren conocimientos especializados particulares de la plataforma para desarrollar en App Engine.

El objetivo general es que tu desarrollo sea una experiencia completamente idiomática, y tu app debe ser por completo portátil y ejecutarse en cualquier entorno de Python estándar. Escribes una app con Python estándar, no una app con Python de App Engine. Como parte de este cambio, ya no usas API y servicios de App Engine integrados para la funcionalidad principal de tu app. En su lugar, usas API y servicios de Google Cloud o API y servicios de terceros.

No hay servicios de App Engine agrupados en el entorno de ejecución de Python 3

A partir del entorno de ejecución de Python 3, el entorno estándar de App Engine ya no incluye los servicios de App Engine agrupados como Memcache y las listas de tareas en cola. En su lugar, Google Cloud proporciona productos independientes que son equivalentes a la mayoría de los servicios agrupados en el entorno de ejecución de Python 2. Para los servicios agrupados que no están disponibles como productos separados en Google Cloud, como el procesamiento de imágenes, la búsqueda y la mensajería, puedes usar proveedores terceros u otras soluciones, como se sugiere en la guía de migración.

Otras diferencias entre los dos entornos de ejecución

En las siguientes secciones, se destacan las diferencias adicionales entre los entornos de ejecución de Python 2 y Python 3.

Archivos de configuración

Antes de que puedas ejecutar tu app en el entorno de ejecución de Python 3 del entorno estándar de App Engine, es posible que debas cambiar algunos de los archivos de configuración que usa App Engine:

  • app.yaml. Se modificó el comportamiento de algunos campos del archivo de configuración app.yaml. Quita los campos obsoletos y actualiza otros campos como se describe en la guía de migración.

  • appengine_config.py: El entorno de ejecución de Python 2 usa este archivo a fin de instalar bibliotecas cliente y proporcionar valores para constantes y "funciones de enlace". El entorno de ejecución de Python 3 no usa este archivo.

    En su lugar, el entorno de ejecución de Python 3 usa el archivo requirements.txt estándar para instalar dependencias, incluidas las dependencias que usan código nativo. Para obtener más información, consulta Especifica dependencias en el entorno de ejecución de Python 3.

Framework web necesario para enrutar solicitudes de contenido dinámico

En el entorno de ejecución de Python 2, puedes crear controladores de URL en el archivo app.yaml para especificar qué aplicación ejecutar cuando se solicita un patrón de URL o una URL específica.

En el entorno de ejecución de Python 3, tu app necesita usar un framework web como Flask o Django para enrutar solicitudes de contenido dinámico, en lugar de usar controladores de URL en app.yaml. En el caso del contenido estático, puedes seguir creando controladores de URL en el archivo app.yaml de tu app.

Prueba

Te recomendamos que uses un enfoque de prueba que sea idiomático para Python, en lugar de depender de dev_appserver. Por ejemplo, puedes usar venv para crear un entorno local aislado de Python 3. Se puede usar cualquier framework de prueba estándar de Python para escribir tu unidad, tu integración y tus pruebas del sistema. Quizás también consideres la configuración de versiones de desarrollo de tus servicios o el uso de los emuladores locales disponibles para muchos productos de Google Cloud.

Como característica opcional para aquellos que eligen usarla, ofrecemos una versión Alfa de un dev_appserver actualizado que es compatible con Python 3. Consulta Usa el servidor de desarrollo local para obtener más información sobre esta opción.

Implementando

Las implementaciones a través de appcfg.py no son compatibles con Python 3. Usa la herramienta de línea de comandos de gcloud para implementar tu app.

Migra de Python 2 a Python 3

Para obtener todos los detalles sobre cómo migrar al entorno de ejecución de Python 3, consulta Migra al entorno de ejecución estándar de Python 3.