Google App Engine正式支援Python 2.7

發表於2012-03-02

來源: InfoQ

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

 

相關文章