python-3.x - 新应用引擎应用程序的 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的dev_appserver.py
支持仍然有限。从运行本地开发服务器:
注意:
- 运行 dev_appserver 需要在本地机器上安装 Python 2.7.12+。
- 更新后的 dev_appserver 不支持在 Windows 上开发 Python 3 应用程序。
这可能就是为什么它不是本地开发的推荐解决方案(或至少目前还不是)。从本地运行:
我们不建议您依赖Google Cloud SDK
dev_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
推荐阅读
- javascript - 循环更改文档中的所有 alt="" 值
- prolog - Prolog 变量没有按预期统一
- c++ - WinApi压缩、python3中的解压
- loops - WaitGroup 不受双重尊重
- cpu - 测试 XDP 与 DPDK
- flow-project - tutorial03_rlib 中的错误
- javascript - 当函数内部不使用事件参数时,为什么这个handleBlur函数带有事件参数?
- asp.net - 调试器是否有可能同时运行两次?
- python - 在这段代码中,我得到 UnboundLocalError: local variable 'click' referenced before assignment。我不知道为什么?
- javascript - next.js、javascript、graphql、react js 中的 Apollo 客户端问题