Google App Engine SDK 1.6.0 發布。支援 Python 2.7
Google App Engine 在前幾天(11/7)發布了 1.6.0 的 SDK。
主要的改進有:
(一)新的(更貴的)收費模式(http://www.google.com/enterprise/cloud/appengine/pricing.html)
(二)可以使用 Python 2.7 了。
其實在上一版就已經加入 2.7 的測試,但是 SDK 等到這次的 1.6.0 才開始支援本機端的 2.7。
要使用 Python 2.7 作為 runtime,首先要確認你的應用程式必須是 High Replication Datastore(HRD)模式才行。
現在建立新的應用程式的話,預設都是在 HRD 模式,如果是很古早前的程式,要先經過 Migration 程序轉換到 HRD 模式。(從後台「Application Settings」裡的「Migrate Application」)
接著在 app.yaml 中修改:
runtime: **python27**
threadsafe: **true**
URL 的對應也要修改為:
- url: /.*
main.**app**
這樣就能在 Python 2.7 中開發你的應用程式了。(當然本機端也別忘了也要升級到 2.7。)
(三)支援各種 Python 2.7 的 Threading library。
(四)支援一些 C 語言的模組:‘ctypes, sqlite, ssl, _ssl, fcntl, spwd, pwd, grp, syslog, select, _socket’
(五)支援 Python 原生的 JSON 函示庫。
以往要在 GAE 裡使用 JSON 得靠 Django 的 simplejson, Python 2.7 開始支援原生的 JSON library,速度會快上很多。
(六)支援許多第三方的函示庫。
在新的 Python 2.7 runtime 可以使用 Django、lxml、jinja2、MarkupSafe、NumPy、PIL、PyCrypto、setuptools、WebOb、YAML、zipimport 這些 third-party libraries。
要在應用程式裡匯入這些 libraries,得先在 app.yaml 中設定好,以 lxml 來說:
libraries:
- name: lxml
version: "2.3"
其中 name 是 library 的名稱,version 是要使用的版本,也可以指定「latest」來使用伺服器上最新的版本。詳細的名稱和版本對應表可以在官方文件裡找到。
接著就可以在程式裡直接 ‘import lxml’ 匯入了。(當然要在本機上測試的話,也得先安裝好相對應的版本囉。)
(七)webapp 框架升級到 webapp2。
簡單的「Hello, World!」範例:
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, WebApp World!')
app = webapp2.WSGIApplication([('/', MainPage)])
迴響
目前沒有迴響。