【问题标题】:How to use Python 3 with Google App Engine's Local Development Server如何将 Python 3 与 Google App Engine 的本地开发服务器一起使用
【发布时间】:2018-03-08 00:56:52
【问题描述】:

我已经配置了一个本地 Python 应用程序

runtime: python

在它的app.yaml 文件中。使用

启动本地开发服务器时
dev_appserver.py app.yaml

一切都好。

由于 GAE 的本地开发服务器默认使用 Python2.7,我现在想改用 Python3.x。根据谷歌的文档,我们必须使用flexible environment。因此,我将 app.yaml 更改为:

runtime: python
env: flex

runtime_config:
  python_version: 3

现在dev_appserver.py app.yaml吐槽了:

Under dev_appserver, runtime:python is not supported for Flexible environment.

可以使用同样使用灵活环境的Google's Hello World application 重现该问题。

所以在本地我们不能使用Python3?我们如何在上传之前在本地运行我的 Python3 代码?

【问题讨论】:

    标签: python python-3.x google-app-engine google-app-engine-python


    【解决方案1】:

    Using the Local Development Server 仅适用于第一代标准环境应用。

    如需运行本地灵活的环境应用,请参阅Running locally

    您使用本机开发工具在本地运行您的应用程序 您通常使用的。

    例如,您通常可以使用 Flask 的 开发服务器使用:

    python main.py
    

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

    python manage.py runserver
    

    相关:How to tell if a Google App Engine documentation page applies to the standard or the flexible environment

    更新:

    第二代标准环境支持有限,见Python 3.7 Local Development Server Options for new app engine apps

    【讨论】:

    • 您是否暗示我无法模拟我的应用程序的本地运行,就好像它在 Google 的云服务器上运行一样?
    • 相反。运行您的本机开发工具是模拟您的 flex env 应用程序的正确方法(这正是它们在 GAE 上运行的方式 - 正如 entrypoint: 配置等效项所指示的那样),dev_appserver.py 仅模拟 GAE 标准 env python 沙箱,其中仅标准环境应用程序运行。
    • @DanCornilescu 但是如果 python manage.py runserver 在本地环境中运行,你怎么能模拟 extact 沙箱,你可以安装其他不在应用引擎中的东西吗?但谢谢你这是一个很好地澄清了标准应用程序的本地开发环境
    • @Manza 好吧,由您来确保仅在本地环境中安装您也指定为应用程序要求的东西。见stackoverflow.com/questions/50627798/…
    • @DanCornilescu 确实如此,但是如果您安装了其他软件,例如,如果您使用 pdfkit 并且您已经安装了 wkhtmltopdf,这将在您的新环境中工作,但在应用程序引擎中不起作用。但是,是的,请记住这一点
    【解决方案2】:

    添加更新的答案(2022 年)

    1. Google App Engine 支持使用 dev_appserver.py 运行 Python 3 应用程序(但不适用于 Windows)

    2. 根据他们的documentation, ....要使用 Python 3 解释器运行 dev_appserver,您必须指定 --runtime_python_path=[PATH_TO_PYTHON3_BINARY] flag....

    3. 一些捆绑的服务(内置 API),如用户、内存缓存、数据存储、命名空间管理器现在也是 available for Python3 应用程序。当您启用它们并使用dev_appserver.py 运行您的 Python3 应用程序时,您将获得与 Python2 中相同的行为,即您将获得模拟的数据存储、内存缓存、用户等

    【讨论】:

      猜你喜欢
      • 2016-12-18
      • 1970-01-01
      • 2011-11-10
      • 2018-06-09
      • 2017-10-19
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      相关资源
      最近更新 更多