谷歌云应用引擎的最佳实践:Python2还是Python3?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷歌云应用引擎的最佳实践:Python2还是Python3?相关的知识,希望对你有一定的参考价值。

我是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只能在Standard或远程工作。这让我感到困惑,选择哪种环境。

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

答案

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

Python 2.7在Flexible中都可用,而Python 3.6仅在third-party libraries already built-in中可用。

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

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

还有另外一个dev_appserver.py,如定价,缩放等。正如我所说,选择将取决于您的应用需求。

编辑

in here仅在使用标准版开发时使用。有一个教程this other example,与Flask。如果您处于灵活状态,则可以在本地测试应用程序,就好像您像往常一样运行python文件,就像在Standard中一样。

你可以在Flexibleimport cloudstorage, ImportError: No module named google.appengine.api中使用水桶

另一答案

基于您引用的SO帖子的python3-only cloudstorage支持假设不正确:

  • 导入似乎是在常规python shell中完成的,或者是作为独立脚本完成的,而不是来自标准环境GAE应用程序 - 不同的东西,请参阅Setting Up Google Cloud Storage
  • 没有指定该库来自何处

标准的env GAE(即在python 2上)肯定支持GCS,你只需要遵循官方文档中的步骤:Reading and Writing to Google Cloud Storagehttps://cloud.google.com/appengine/docs/python/

另一答案

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

在本文档中找到答案:numpy

另一答案

这取决于你使用它的是什么。例如,如果您正在进行数据科学,我会看到一些Python库的通知(最终)放弃对Python 2的支持.dropping support就是qazxswpoi。

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

以上是关于谷歌云应用引擎的最佳实践:Python2还是Python3?的主要内容,如果未能解决你的问题,请参考以下文章

直播预告谷歌云线上课堂:BigQuery 最佳实践

从 github 更新谷歌云应用引擎上的 nodejs 应用

访问谷歌云存储的应用引擎项目的默认凭据?

谷歌云应用引擎到 postgresql 连接被拒绝

如何使用谷歌应用引擎将 php 项目部署到谷歌云中?

谷歌云平台(应用引擎)SSL握手错误