2013-03-23 77 views
0

我不熟悉Google App Engine和Python。我幾乎完成了一個項目,但無法使get_serving_url()函數正常工作。按照文檔,我已經將所有內容都剝離到了最基本的功能上。然而我仍然從服務器得到一個500錯誤。有什麼想法嗎?這裏是代碼:無法讓Google App Engine圖像API get_serving_url功能正常工作

from google.appengine.api import images 

.... 

class Team(db.Model): 
    avatar = db.BlobProperty() 

    .... 

    def to_dict(self): 
     .... 
     image_url = images.get_serving_url(self.avatar.key()) 

最後一行是問題...評論它使應用程序運行良好。但它幾乎直接從文檔複製。我應該注意到,我可以直接下載頭像blob:

class GetTeamAvatar(webapp2.RequestHandler): 
def post(self): 
    team_id = self.request.get('team_id') 
    team = Team.get_by_id(long(team_id)) 
    self.response.write(team.avatar) 

所以我知道它存儲正確。我的機器上沒有PIL ...是這個問題嗎?數據存儲的圖像API表示它在本地擁有PIL,因此如果我正在部署我的應用程序,那應該沒關係,對吧?我有Python 3.3,顯然PIL停在2.6。

回答

2

Python appengine運行時間是2.7,(確定和2.5),所以甚至不嘗試使用3.x.

其次,get_serving_URL是您使用BlobStore實體鍵而不是BlobProperty調用的方法。

你在這裏混淆了兩個不同的東西。

我會專注於讓您的代碼在2.7以上本地正確運行,而PIL可用於2.7。

0

如果您嘗試部署您的應用程序而無需在本地進行測試,我印象非常深刻。

你需要做的一件事就是通過libraries屬性在app.yaml中提供PIL。

相關問題