写点什么

Google App Engine 正式支持 Python 2.7

2012 年 3 月 01 日

最近,Google 在其 Google App Engine(以下简称 GAE)官方博客上宣布正式支持Python 2.7,对开发者来说又多了一种选择。

GAE 在几个月之前实验性的引入了 Python 2.7 环境,此后一直在修改缺陷和进行优化。随着这次 Python 2.7 的正式支持,相信对开发人员更有帮助:

首先,它支持程序利用并发请求,帮助开发者构建更加稳定、高效的应用。如果你的应用没有完全利用 CPU,那么你现在有机会通过并发请求来降低实例的数量。

同时,我们还增加了开发者迫切需要的工具库,包括 PIL、NumPy 和 lxml 等,这些库已经被开发者提了将近两千次了。

通过使用 GAE,用户可以在 Google 基础架构上运行网络应用程序,目前 GAE 支持使用几种编程语言编写的应用程序,包括 Java、Python(2.5 和 2.7)、Go 等语言。

相比 2.5 版,Python 2.7 提供了更多的特性和工具库,开发者可以更加得心应手:

  1. 多线程——2.5 不支持此特性,在 2.7 中,开发者可以利用多线程库。单个请求中的所有线程必须在请求时限(在线请求为 60 秒,离线请求为 10 分钟)之前完成。
  2. 并发请求——2.5 不支持此特性,现在开发者可以在 GAE 中修改配置来支持并发请求。
  3. 字节码修改——在 2.5 版本中由于运行时的限制无法修改字节码,Python 2.7 不再包括此限制。生成和处理字节码的工具库可以在运行时正常工作。
  4. 字节码上传——2.5 版不支持,Python 2.7 可以上传.pyc 文件,但是不能和.py 一起,但是可以上传包含.py 和.pyc 文件的.zip 文件。

除此之外,两版之间的区别还包括对数据存储的支持、Django、JSON 等工具库的版本更新等等。

GAE 的 Python 2.7 运行时环境支持一下第三方工具库:

  1. lxml (2.3)——lxml 工具库支持开发者更加方便的处理 XML 和 HTML 文档,对于 GAE 上 Web 服务的开发人员来说,是个必不可少的工具。
  2. jinja2 (2.6)—— Jinja2 是基于 python 的多功能的被广泛使用的模板引擎,功能比较类似于于 PHP 的 Smarty、J2EE 的 Freemarker 和 Velocity。 它支持 Unicode,并具有集成的沙箱执行环境,Jinja2 模板引擎弥补了 Django 自带模板系统许多不足。Python 2.7 不再推荐使用 WebApp 模板,jinja2 成为了替代者。
  3. MarkupSafe (0.15)——MarkupSafe 为 XML、HTML 和 XHTML 提供了安全转义的字符串。
  4. NumPy(1.6.1)——Numpy 提供了若干数据处理的工具。
  5. PIL (1.1.7)——全称为 Python Imaging Library,提供了许多用于处理图片的函数。
  6. PyCrypto (2.3)——全称为 Python Cryptography Toolkit,提供了许多密码学算法函数,比如随机数生成等。
  7. setuptools (0.6c11)——帮助开发者下载、构建、安装、升级和卸载 Python 包。
  8. WebOb (1.1.1)——对 HTTP 请求和响应做了面向对象的封装,GAE 将其作为 webapp 框架的一部分。
  9. YAML (3.10)——支持可读性高的消息序列化数据格式,GAE SDK 使用 YAML 作为其配置文件的格式。

除了 Python 语言之外,GAE 还支持 Java 和 Go 语言(实验阶段):

Google App Engine 支持 Java 5 和 Java 6。在 App Engine 上运行 Java 应用程序时,将使用 Java 6 虚拟机 (JVM) 和标准库运行该应用程序。理想情况下,开发者应使用 Java 6 编译和测试应用程序,以确保本地服务器的工作方式与 App Engine 类似。

App Engine SDK 与 Java 5 兼容,这非常适用于不能方便获取 Java 6 的开发人员(如使用 Mac OS X 的开发人员)。开发者可以将使用 Java 5 编译的类和 JAR 上传到 App Engine。

2012 年 3 月 01 日 06:202771
用户头像

发布了 501 篇内容, 共 217.3 次阅读, 收获喜欢 36 次。

关注

评论

发布
暂无评论
发现更多内容

食堂就餐卡系统架构设计

子豪sirius

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

edd

设计思维

架构师训练营-第一课作业

Linuxer

极客大学架构师训练营

作业二【0606学习小结】

道法自然

极客大学架构师训练营

【架构师第一周】总结

浪浪

【架构训练Week01作业】食堂就餐卡系统设计

Rex

week1.食堂就餐卡系统设计

个人练习生niki

UML

就餐卡系统UML图

漂泊者及其影子

极客大学架构师训练营

第一周·总结 架构师如何做架构设计

刘璐

架构师训练营第一周学习总结

坂田吴奇隆

极客大学架构师训练营

架构学习第一周作业

+╮(╯▽╰)╭/>……

【架构训练Week01作业】Review

Rex

时刻架构

慵秋

极客大学架构师训练营

week1《作业一:食堂就餐卡系统设计》

任鑫

架构师训练营第一周学习总结

fenix

【架构师第一周作业】食堂就餐卡系统设计

浪浪

学习

架构师0期 01周总结

我在终点等你

作业1-食堂就餐卡系统设计

进击的炮灰

第一周·作业-食堂就餐卡系统

刘璐

gcc a.c 究竟经历了什么?

helloworld

c++

UML练习

毛叫

极客时间 极客大学架构师训练营

作业一【食堂就餐卡系统设计】

道法自然

极客大学架构师训练营

架构师是怎样炼成的-1-2

闷骚程序员

极客大学架构师训练营

极客大学架构师训练营 总结 - 第一课

Darren

食堂餐卡系统设计

leis

第一周作业

慵秋

食堂就餐卡系统设计(作业模拟)

潜默闻雨

食堂就餐卡系统设计

心在飞

极客大学架构师训练营

食堂就餐卡系统

孙野

食堂就餐卡系统设计

新世界

架构 0 期-week1-学习总结

陈俊

Google App Engine正式支持Python 2.7-InfoQ