2

アプリケーションを Python 2.5 から 2.7 に切り替える過程にあり、画像サービスで問題が発生し始めています。たとえば、db.put() を使用してこのエンティティを保存します。

from google.appengine.api import images

class Images(db.Expando):
    ImageTitle = db.StringProperty()
    ImageFile = blobstore.BlobReferenceProperty()
    ImageReference = db.StringProperty()

    def put(self, **kwargs):                    
        if not self.ImageReference:
            self.ImageReference = images.get_serving_url(self.ImageFile.key())
        super(Images, self).put(**kwargs)

次のエラーが発生します。

Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1536, in __call__
    rv = self.handle_exception(request, response, e)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1530, in __call__
    rv = self.router.dispatch(request, response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "C:\Users\VB User\Bruha\src\handler_product_page_image.py", line 40, in post
    image.put()
  File "C:\Users\VB User\Bruha\src\db_models.py", line 56, in put
    self.ImageReference = images.get_serving_url(self.ImageFile.key())
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\images\__init__.py", line 1792, in get_serving_url
    rpc = get_serving_url_async(blob_key, size, crop, secure_url, filename, rpc)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\images\__init__.py", line 1907, in get_serving_url_async
    None)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\images\__init__.py", line 1034, in _make_async_call
    rpc = create_rpc()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\images\__init__.py", line 1028, in create_rpc
    return apiproxy_stub_map.UserRPC("images", deadline, callback)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 405, in __init__
    self.__rpc = CreateRPC(service, stubmap)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 69, in CreateRPC
    'a CreateRPC method.') % service)
AssertionError: The service "images" doesn't have a CreateRPC method.

「execute_transforms」メソッドを呼び出しても、同じエラーが発生します。

何が起こっているのかを理解する助けがあれば大歓迎です。

4

1 に答える 1

5

あなたは開発サーバーを実行しているので、起動時にこのメッセージをチェックしてください `'画像APIを初期化できませんでした; Python "PIL" モジュールが不足している可能性があります。ImportError: %s', e

このメッセージが表示された場合、画像サービス RPC が登録されておらず ( RegisterStubdev_appserver の呼び出しが失敗します)、呼び出しでアサーションが失敗するため、表示されているエラーが表示されCreateRPCます。

そのため、PIL が Python 2.7 用に正しくインストールされているかどうかを確認してください。

于 2012-08-31T02:42:20.420 に答える