Google App Engine SDK:python 基本教學安裝

Powered by Google App Engine Google App Engine 利用 python 程式語言所組成,可以利用 Google 背後的技術來開發您的 Web application,後端就交給 Google 的強大雲端運算能力,前端就可以利用 SDK 來開發您的 Web 介面,後端儲存可以用 Google BigtableGFS 的儲存方式,那現在就不多說了,花了一點時間把環境建立起來,遇到一些問題,現在來筆記一下,目前我在 FreeBSD 7.1 Release 來當作 Google App Engine 開發平台,在安裝方面有遇到一些小問題,底下來看看: 在 FreeBSD 安裝方法還蠻簡單的,首先把 python 環境弄好

# cd /usr/ports/lang/python25/
# make install clean
底下這張圖就是安裝好的結果:

GAE (by appleboy46)

安裝好之後就是下載開發環境 SDK

Downloads,目前支援 Mac OS、Linux、Windows 都可以安裝: 當然我就選擇 Linux 的 zip 檔案,下載好解壓縮就可以了,接下來介紹怎麼使用,其實網路上說明文件都寫的還蠻詳細的,解壓縮產生一個資料夾 google_appengine,裡面兩個檔案是大家都會用到的:

  • dev_appserver.py:這個檔案用來編譯您寫的 Web application
  • appcfg.py:用來上傳您寫好的檔案到 App Engine 系統 再來寫測試檔案,測試看看喔,寫一個

Hello, World! 來看看 先建立一個 hello 的資料夾

# mkdir hello
裡面放入兩個檔案,分別是:hello.py 跟 app.yaml,hello.py 就是您的程式檔案,app.yaml 就是網站設定檔,檔案內容分別如下: hello.py:
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
app.yaml:
application: hello
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
script: hello.py
接下來開始編譯:利用 dev_appserver.py 這隻 python 程式編譯
google_appengine/dev_appserver.py hello
這樣預設編譯 8080 port,這樣就可以利用 http://localhost:8080 來看到網站,不過底下會出現一些問題:
WARNING  2009-03-07 03:09:14,371 dev_appserver.py] 
Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging
這個問題,就是沒有安裝 pytho 的 imaging 這隻 ports,我是參考了

FreeBSD ports and Python versions,找到答案的,所以解決方式如下

# cd /usr/ports/graphics/py-imaging
# make install clean
再來就是為甚麼只能在本機端觀看網頁,只要不是用 127.0.0.1 跟 localhost 就不能看,我想要用 domain name 下去看阿,所以只要加上參數就可以了
google_appengine/dev_appserver.py --address=0.0.0.0 --port=9999 hello
這樣就可以利用 host name 下去看了,也可以把預設 8080 port 改成 9999,另外一個問題:
WARNING  2009-03-07 04:27:36,197 datastore_file_stub.py] 
Could not read datastore data from /tmp/dev_appserver.datastore
這問題其實很簡單,這只是提供一個 warning 的訊息,不會造成系統不能啟動,因為如果您是寫 hello 這隻程式,根本不需要用到 data store 自然就會提醒出這個訊息,如果該檔案沒有存在也會出現這個訊息,不過系統會在啟動自動建立,所以也不用擔心,然而如果您 compiler demo 檔案,就是 guest book 這個資料夾
google_appengine/dev_appserver.py --address=0.0.0.0 --port=9999 google_appengine/demos/guestbook
系統因為剛開始找不到 dev_appserver.datastore 這個檔案,所以會有 warning 訊息,然後也會自動建立該檔案,等您下次從新啟動,這個 warning 訊息就會消失了,可以參考此

文章,您也可以利用 –datastore_path=/usr/home/hello/datastore 來改變存 data store 的地方。 參考文章: ericsk 大大文章: Google App Engine


See also