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

时间:2018-05-16 07:04:38

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

我是Google Cloud Platform的新手,在我的整个过程中,我一直在研究Python 3.我正在尝试找出哪个版本的Python对Google App Engine更完整:Python 2.7或Python 3.

当我开始使用Google App Engine时,我意识到继续使用Python 3似乎太过痛苦,因为"Location":"XXXXX", "EquipmentID": "XXXXXX", "Events":[ {"Timestamp": "2018-04-06T12:45:00Z",...} {"Timestamp": "2018-04-06T12:45:01Z",...} 等基本工具是为Python 2 only编写的。现在我遇到了相反的问题:dev_appserver.py模块seems to exist only for python3。同样,当我安装它时,似乎我可以在本地测试读取/写入谷歌存储桶的唯一方法是使用cloudstorage进行身份验证,而google.appengine.ext只能在dev_appserver.py内或远程工作。这使我对选择哪种环境感到困惑。

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

4 个答案:

答案 0 :(得分:2)

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

Python {2}中提供了Python 2.7,而Python 3.6仅适用于Standard and Flexible

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

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

还有另外client,如定价,缩放等。正如我所说,选择将取决于您对应用程序的需求。

修改

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

您可以在this other exampleStandard

中使用存储分区

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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