【问题标题】:Best practices with google cloud app engine: Python2 or Python3?谷歌云应用引擎的最佳实践:Python2 还是 Python3?
【发布时间】:2018-05-16 07:04:37
【问题描述】:

我是 Google Cloud Platform 的新手,我一直在研究 Python 3。我正在尝试找出哪个 Python 版本更适合 Google App Engine:Python 2.7 或 Python 3。

当我开始使用 Google App Engine 时,我意识到继续使用 Python 3 似乎太痛苦了,因为像 dev_appserver.py 这样的基本工具是为 Python 2 only 编写的。现在我遇到了相反的问题:cloudstorage 模块seems to exist only for python3。同样,当我安装它时,似乎我可以在本地测试对谷歌存储桶的读/写的唯一方法是使用google.appengine.ext 进行身份验证,而这又只能在dev_appserver.py 内或远程工作。这让我很困惑选择哪个环境。

什么是通用协议/Google App Engine 的重点是什么:Python 2 还是 Python 3?

【问题讨论】:

  • ...澄清点:“Google Cloud Engine”是指“Google Compute Engine”吗?
  • Google App Engine Cloud -- 已修正

标签: python python-3.x google-app-engine google-cloud-platform google-cloud-storage


【解决方案1】:

在 App Engine 中,您必须选择:Standard 环境和 Flexible 环境。

Python 2.7 在Standard and Flexible 中都可用,而 Python 3.6 仅在 Flexible 中可用。

此外,标准和灵活之间的选择取决于您想要做什么/您需要什么库:

  • 标准环境中有一些third-party libraries already built-in,您可以包含other libraries,但是,那些库不能包含C扩展,它们必须用纯Python编写。如果您需要带有 C 扩展的库,则必须转到 Flexible
  • 在 Standard 中,您可以使用专有库(如您提到的 google.appengine.ext)来执行访问数据库等任务,而在 Flexible 中,您可以使用其他库(如您提到的 client)。

还有另一个important differences,如定价、缩放等。正如我所说,选择取决于您对应用程序的需求。

编辑

dev_appserver.py 仅在标准开发时使用。有一个使用 Flask 的教程in here。如果你在灵活,你可以在本地测试应用程序,就像你像往常一样运行一个 python 文件,就像在this other example 中一样。

您可以在StandardFlexible 中使用存储桶

【讨论】:

  • 好吧,正如我所说,我需要能够使用 dev_appserver.py 之类的东西在本地测试应用程序,并且能够使用存储桶存储。两者似乎都在标准的、特定于谷歌的应用程序的范围内。一个只适用于 2,另一个适用于 3。我错过了什么吗?
【解决方案2】:

基于您引用的 SO 帖子的仅限 python3 的云存储支持假设不正确:

标准 env GAE(即在 python 2 上)绝对支持 GCS,您只需按照官方文档中的步骤操作:Setting Up Google Cloud StorageReading and Writing to Google Cloud Storage

【讨论】:

    【解决方案3】:

    两者都很好。但问题是你想要什么样的环境?标准环境或柔性环境。

    在本文档中找到您的答案:https://cloud.google.com/appengine/docs/python/

    【讨论】:

      【解决方案4】:

      这取决于您使用它的目的。例如,如果你从事数据科学,我看到一些关于 Python 库的通知(最终)放弃了对 Python 2 的支持。numpy 就是 dropping support

      一般来说,我会推荐 Python 3 而不是 Python 2。为什么要花时间开发一个老化的版本,因为它的替代品已经很好地成熟并且更加一致?

      【讨论】:

      • 我知道,但这是与 Google App Engine 无关的一般建议。
      • 我意识到,如果您将此 App Engine 用于数据科学,则在选择语言版本时需要牢记软件包支持。要记住的另一件事是,GCP 不断发展和发展——它们比一年前要好得多——并且可以合理地预期,在某个时候,Python 3 将成为他们前进的标准。
      猜你喜欢
      • 2017-04-19
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2011-04-20
      • 2014-03-19
      • 1970-01-01
      相关资源
      最近更新 更多