Posted on 2012-03-02 20:25
RTY 閱讀(385)
評論(0) 編輯 收藏 引用 所屬分類:
Python
最近,Google在其Google App Engine(以下簡稱GAE)官方博客上宣布正式支持Python 2.7,對開發(fā)者來說又多了一種選擇。
GAE在幾個月之前實驗性的引入了Python 2.7環(huán)境,此后一直在修改缺陷和進行優(yōu)化。隨著這次Python 2.7的正式支持,相信對開發(fā)人員更有幫助:
首先,它支持程序利用并發(fā)請求,幫助開發(fā)者構(gòu)建更加穩(wěn)定、高效的應(yīng)用。如果你的應(yīng)用沒有完全利用CPU,那么你現(xiàn)在有機會通過并發(fā)請求來降低實例的數(shù)量。
同時,我們還增加了開發(fā)者迫切需要的工具庫,包括PIL、NumPy和lxml等,這些庫已經(jīng)被開發(fā)者提了將近兩千次了。
通過使用GAE,用戶可以在Google 基礎(chǔ)架構(gòu)上運行網(wǎng)絡(luò)應(yīng)用程序,目前GAE支持使用幾種編程語言編寫的應(yīng)用程序,包括Java、Python(2.5和2.7)、Go等語言。
相比2.5版,Python 2.7提供了更多的特性和工具庫,開發(fā)者可以更加得心應(yīng)手:
- 多線程——2.5不支持此特性,在2.7中,開發(fā)者可以利用多線程庫。單個請求中的所有線程必須在請求時限(在線請求為60秒,離線請求為10分鐘)之前完成。
- 并發(fā)請求——2.5不支持此特性,現(xiàn)在開發(fā)者可以在GAE中修改配置來支持并發(fā)請求。
- 字節(jié)碼修改——在2.5版本中由于運行時的限制無法修改字節(jié)碼,Python 2.7不再包括此限制。生成和處理字節(jié)碼的工具庫可以在運行時正常工作。
- 字節(jié)碼上傳——2.5版不支持,Python 2.7可以上傳.pyc文件,但是不能和.py一起,但是可以上傳包含.py和.pyc文件的.zip文件。
除此之外,兩版之間的區(qū)別還包括對數(shù)據(jù)存儲的支持、Django、JSON等工具庫的版本更新等等。
GAE的Python 2.7運行時環(huán)境支持一下第三方工具庫:
- lxml(2.3)——lxml工具庫支持開發(fā)者更加方便的處理XML和HTML文檔,對于GAE上Web服務(wù)的開發(fā)人員來說,是個必不可少的工具。
- jinja2(2.6)——Jinja2是基于python的多功能的被廣泛使用的模板引擎,功能比較類似于于PHP的Smarty、J2EE的Freemarker和Velocity。 它支持Unicode,并具有集成的沙箱執(zhí)行環(huán)境,Jinja2模板引擎彌補了Django自帶模板系統(tǒng)許多不足。Python 2.7不再推薦使用WebApp模板,jinja2成為了替代者。
- MarkupSafe(0.15)——MarkupSafe為XML、HTML和XHTML提供了安全轉(zhuǎn)義的字符串。
- NumPy(1.6.1)——Numpy提供了若干數(shù)據(jù)處理的工具。
- PIL(1.1.7)——全稱為Python Imaging Library,提供了許多用于處理圖片的函數(shù)。
- PyCrypto(2.3)——全稱為Python Cryptography Toolkit,提供了許多密碼學(xué)算法函數(shù),比如隨機數(shù)生成等。
- setuptools(0.6c11)——幫助開發(fā)者下載、構(gòu)建、安裝、升級和卸載Python包。
- WebOb(1.1.1)——對HTTP請求和響應(yīng)做了面向?qū)ο蟮姆庋b,GAE將其作為webapp框架的一部分。
- YAML(3.10)——支持可讀性高的消息序列化數(shù)據(jù)格式,GAE SDK使用YAML作為其配置文件的格式。
除了Python語言之外,GAE還支持Java和Go語言(實驗階段):
Google App Engine 支持 Java 5 和 Java 6。在 App Engine 上運行 Java 應(yīng)用程序時,將使用 Java 6 虛擬機 (JVM) 和標準庫運行該應(yīng)用程序。理想情況下,開發(fā)者應(yīng)使用 Java 6 編譯和測試應(yīng)用程序,以確保本地服務(wù)器的工作方式與 App Engine 類似。
App Engine SDK 與 Java 5 兼容,這非常適用于不能方便獲取 Java 6 的開發(fā)人員(如使用 Mac OS X 的開發(fā)人員)。開發(fā)者可以將使用 Java 5 編譯的類和 JAR 上傳到 App Engine。
崔康 熱情的技術(shù)探索者,資深軟件工程師,InfoQ編輯,從事企業(yè)級Web應(yīng)用的相關(guān)工作,關(guān)注性能優(yōu)化、Web技術(shù)、瀏覽器等領(lǐng)域。