Python 2 不再受社区支持。我们建议您将 Python 2 应用迁移到 Python 3

为 Python 3 运行时准备配置文件

在 App Engine 标准环境的 Python 3 运行时中运行应用之前,可能需要更改该 App Engine 使用的一些配置文件:

  • app.yaml。此文件包含应用代码的相关信息,例如运行时和最新版本标识符。

  • appengine_config.py。Python 2 运行时使用此文件来安装客户端库并为常量和“钩子函数”提供值。Python 3 运行时不使用此文件。

更新 app.yaml

您的 app.yaml 配置文件中某些字段的行为已修改。移除所有不再受支持的字段并更新其他字段,如下表所述。

字段 更改类型 说明
api_version
application_readable
builtins
不再支持 不适用于 Python 3 运行时。
线程安全 不再支持 假定所有应用的线程安全。如果应用不是线程安全的,请将 max_concurrent_requests 设置为 1这可能会显着增加您的费用。
不再支持 使用 requirements.txt 文件声明依赖项并安装客户端库
处理程序:登录 不再支持 login 字段不受支持使用 Identity and Access Management (IAM) 执行用户管理。
处理程序:脚本 已修改 在 Python 2 运行时中,您使用 script 字段将传入请求路由到应用的脚本。

在 Python 3 运行时中,您需要使用具有应用内路由的 Web 框架(例如 Flask 或 Django),而不是使用 script 字段。

如需将 app.yaml 文件迁移到 Python 3 运行时,请执行以下操作之一,具体取决于该文件是否包含静态处理程序以及脚本处理程序:

  • 如果您的 app.yaml 文件包含静态处理程序,请执行以下操作之一,以确保将动态内容请求路由到应用的脚本:
    • 移除所有 script 字段。然后添加 entrypoint 字段以启动运行应用的 Web 服务器。与任何静态调度程序均不匹配的请求将定向到您在 entrypoint 字段中指定的 Web 服务器。Web 服务器和应用的 Web 框架负责将请求路由到正确的脚本。
    • 将所有 script 字段的值替换为 auto。App Engine 将在 Web 服务器中自动运行应用(假设应用符合一些要求),与脚本处理程序匹配的所有请求都将定向到该 Web 服务器。Web 服务器和应用的 Web 框架负责将请求路由到正确的脚本。
    • 如果您的 app.yaml 文件包含静态处理程序,请移除所有 script 字段。发送到应用的所有请求都将定向到应用的 Web 服务器,并且应用的框架会将请求路由到正确的脚本。您可以选择添加 entrypoint 字段来自定义默认启动行为

静态文件处理保持不变。

如果使用任何已弃用的字段,App Engine 会在您部署应用时返回错误。

移除 appengine_config.py

使用了 appengine_config.py 文件的 App Engine 标准环境中的 Python 2 运行时包括供应商提供的第三方库。Python 3 运行时会忽略 appengine_config.py 文件。

相反,Python 3 运行时会使用标准 requirements.txt 文件来 安装依赖项,包括使用原生代码的依赖项。如需了解详情,请参阅 Python 3 运行时中的 指定依赖项