首页 > 解决方案 > 新应用引擎应用程序的 Python 3.7 本地开发服务器选项

问题描述

我有一个在标准 Python3 运行时上部署和运行的应用程序引擎应用程序。我还可以使用普通命令在本地运行它,例如flask run. 但我无法像在 2.7 运行时中使用dev_appserver.py. 我正在使用最新gcloud版本,但运行dev_appserver.py结果为:

错误:Python 3 及更高版本与 Google Cloud SDK 不兼容。请使用 Python 2.7.x 版本。

我认为在它看到之前我们不应该再这样做了: https ://cloud.google.com/appengine/docs/standard/python3/tools/local-devserver-command

开头是:

Python 3.7 本地开发服务器选项

用法:
dev_appserver.py [选项] yaml_path [文件...]

是否dev_appserver.py与 Python3 兼容(也许我的路径中有一个旧版本)?如果没有,是否有一种在本地运行应用程序的新方法,该方法将遵守 app.yaml(如正确处理静态路径)并提供其他细节,如dev_appserver.py提供的本地数据存储?

标签: python-3.xgoogle-app-engine

解决方案


对 Python 3的dev_appserver.py支持仍然有限。从运行本地开发服务器

注意

  • 运行 dev_appserver 需要在本地机器上安装 Python 2.7.12+。
  • 更新后的 dev_appserver 不支持在 Windows 上开发 Python 3 应用程序。

可能就是为什么它不是本地开发的推荐解决方案(或至少目前还不是)。从本地运行

我们建议您依赖Google Cloud SDKdev_appserver提供的本地开发服务器等工具。但是,如果您要将现有 App Engine 应用程序从 Python 2 迁移到 Python 3,我们已经更新以促进此过程。对于所有其他本地开发场景,我们建议使用标准 Python 测试方法。dev_appserver

例如,您通常可以使用 Flask 的开发服务器运行 Flask 应用程序:

python main.py

可以使用以下方式启动 Django 应用程序:

python manage.py runserver

要模拟生产 App Engine 环境,您可以在本地运行完整的 Web 服务器网关接口 (WSGI) 服务器。为此,请使用在 app.yaml 中指定为入口点的相同命令,例如:

gunicorn -b :$PORT main:app

推荐阅读