2013-03-23 79 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。