• Google App Engine正式支持Python 2.7


    最近,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。

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/shihao/p/2378545.html
Copyright © 2020-2023  润新知