Python 2 is no longer supported by the community. We recommend that you migrate Python 2 apps to Python 3.

Preparing configuration files for the Python 3 runtime

Before you can run your app in the Python 3 runtime of the App Engine standard environment, you may need to change some of the configuration files that App Engine uses:

  • app.yaml. This file contains information about your app's code, such as the runtime and the latest version identifier.

  • The Python 2 runtime uses this file to install client libraries and provide values for constants and "hook functions". The Python 3 runtime doesn't use this file.

Updating app.yaml

The behavior of some fields in your app.yaml configuration file has been modified. Remove any deprecated fields and update other fields as described in the following table.

Field Change type Description
entrypoint Added entrypoint is a new optional field for specifying the command that runs when your app starts. If you do not specify an entrypoint, App Engine configures and starts the Gunicorn web server.
threadsafe Deprecated All applications are presumed to be threadsafe. If your application isn't threadsafe, set max_concurrent_requests to 1. This may significantly increase your costs.
api_version Deprecated No longer used in the Python 3 runtime.
application_readable Deprecated No longer used in the Python 3 runtime.
builtins Deprecated
libraries Deprecated Use the requirements.txt file to declare dependencies and install client libraries.
handlers Modified
  • In the Python 2 runtime, the script field routes a specific URL or URL pattern to a script.

    In the Python 3 runtime, instead of using script to route requests to scripts, use a web framework (for example, Flask or Django) with in-app routing.

  • The login field is not supported. Use Identity and Access Management (IAM) for user management.

Static file handling remains unchanged. However to use static handlers, you must either specify the entrypoint element in app.yaml or specify a handler with script=auto.

If you use any of the deprecated fields, App Engine returns an error when you deploy your app.


The Python 2 runtime in the App Engine standard environment used the file include vendored third-party libraries. The Python 3 runtime ignores the file.

Instead, the Python 3 runtime uses the standard requirements.txt file to install dependencies, including dependencies that use native code. For more information, see Specifying Dependencies in the Python 3 runtime.