Preparar archivos de configuración para el entorno de ejecución de Python 3
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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 Este archivo contiene información sobre el código de la aplicación, como el entorno de ejecución y los controladores de aplicación.
appengine_config.py. El entorno de ejecución de Python 2 usa este archivo para acceder a bibliotecas de terceros y proporcionar valores para constantes y “funciones hook”.
El entorno de ejecución de Python 3 no usa este archivo.
Actualizando app.yaml
Se modificó el comportamiento de algunos campos del archivo de configuración app.yaml. Quita los campos que ya no sean compatibles y actualiza otros campos como se describe en la siguiente tabla.
No aplicable en el entorno de ejecución de Python 3.
threadsafe
Ya no son compatibles.
Se presume que todas las aplicaciones son seguras para usar en subprocesos. Si tu aplicación no tiene protección de subprocesos, especifica un entrypoint y configura 1 subproceso por trabajador.
Por ejemplo, cuando uses la clase de instancia F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app
Si no usas los servicios agrupados en paquetes heredados para Python 3, usa Identity and Access Management (IAM) en la administración de usuarios.
controladores: secuencia de comandos
Modificado
En el entorno de ejecución de Python 2, usa el campo script para enrutar las solicitudes entrantes a la secuencia de comandos de tu app.
En el entorno de ejecución de Python 3, debes usar un framework web con enrutamiento integrado en la app (como Flask o Django) en lugar de usar el campo script.
Para migrar tu archivo app.yaml al entorno de ejecución de Python 3, realiza una de las siguientes acciones, según si el archivo contiene controladores estáticos y controladores de secuencias de comandos:
Si tu archivo app.yaml contiene controladores estáticos, realiza una de las siguientes acciones para asegurarte de que las solicitudes de contenido dinámico se enruten a la secuencia de comandos de tu aplicación:
Quita todos los campos script. Luego, agrega un campo entrypoint para iniciar un servidor web que ejecute tu aplicación. Las solicitudes que no coincidan con ninguno de tus controladores estáticos se dirigirán al servidor web que especificaste en el campo entrypoint. El servidor web y framework de tu aplicación son responsables de enrutar la solicitud a la secuencia de comandos correcta.
Reemplaza el valor de todos los campos script por auto. App Engine ejecutará tu aplicación en un servidor web de forma automática (siempre que tu aplicación cumpla con algunos requisitos), y todas las solicitudes que coinciden con un controlador de secuencia de comandos se dirigirán al servidor web. El servidor web y el framework de tu aplicación son responsables de enrutar la solicitud a la secuencia de comandos correcta.
Si tu archivo app.yamlno contiene controladores estáticos, quita todos los campos script. Todas las solicitudes a tu app se dirigirán a su servidor web, y el framework de tu app enrutará la solicitud a la secuencia de comandos correcta. De forma opcional, puedes agregar un campo entrypoint para personalizar el comportamiento de inicio predeterminado.
Si tu app.yaml tiene ambos tipos de controladores, puedes quitar todos los controladores de secuencias de comandos que se marcarían como auto y dejar los controladores estáticos, así como los controladores auto que requieren otras directivas, como el controlador de solo administrador en el ejemplo a continuación.
El entorno de ejecución de Python 2 en el entorno estándar de App Engine usa el archivo appengine_config.py.
Este archivo se ignora en el entorno de ejecución de Python 3. 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.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-03-26 (UTC)"],[[["The Python 3 runtime on App Engine standard environment requires updates to the `app.yaml` file, while the `appengine_config.py` file is no longer used."],["Several fields in the `app.yaml` file are no longer supported in Python 3, including `api_version`, `application_readable`, `builtins`, `threadsafe`, and `libraries`, each having different changes in requirements or methodology."],["If using the legacy bundled services, the `app_engine_apis` field in `app.yaml` must be set to `true`, and it enables the use of `handlers: login`; otherwise, Identity and Access Management (IAM) should be used."],["In Python 3, the `script` field in `app.yaml` handlers is replaced by in-app routing using a web framework like Flask or Django, and the `entrypoint` field is used to start the web server, which will handle the routing."],["In the Python 3 runtime, dependencies are installed using the standard `requirements.txt` file instead of the `appengine_config.py` file used in Python 2, meaning the latter file can be removed."]]],[]]