0

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 で停止しています。

4

2 に答える 2

2

Python appengineの実行時間は2.7(OKおよび2.5)なので、3.xで作業しようとしないでください。

次に、get_serving_URLは、BlobPropertyではなくBlobStoreエンティティキーを使用して呼び出すメソッドです。

ここでは、2つの異なることを混同しています。

最初に2.7でコードをローカルで正しく実行することに集中します。PILは2.7で使用できます。

于 2013-03-24T00:51:27.250 に答える
0

ローカルでテストすることさえせずにアプリをデプロイしようとしている場合、私は非常に感銘を受けます.

必要なことの 1 つは、ライブラリー属性を介して app.yaml で PIL を使用できるようにすることです。

于 2013-03-24T05:29:01.433 に答える