无法使Google App Engine Images API get_serving_url功能正常工作

时间:2013-03-23 21:58:16

标签: google-app-engine python-3.x python-imaging-library

我是Google App Engine和Python的新手。我几乎完成了一个项目,但无法使get_serving_url()函数正常工作。根据文档,我已经将所有内容都删除了最基本的功能。然而,我仍然从服务器得到500错误。有什么想法吗?这是代码:

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 个答案:

答案 0 :(得分:2)

Python appengine运行时间是2.7,(OK和2.5)所以甚至不尝试使用3.x.

其次,get_serving_URL是使用BlobStore实体键而不是BlobProperty调用的方法。

你在这里混淆了两件不同的事情。

我会专注于让您的代码首先在2.7下正确运行,PIL可用于2.7。

答案 1 :(得分:0)

如果您尝试部署应用程序而不在本地进行测试,我会非常感动。

您需要做的一件事是通过libraries属性在app.yaml中提供PIL。