1

次のコードを使用して、日付を memcache に保存しようとしています。

from datetime インポート日
google.appengine.api.memcache インポート クライアントから

MEMCACHE_DATE_KEY = '日付'

クライアント = クライアント()

def last_date():
    return client.get(MEMCACHE_DATE_KEY)

デフォルト new_date():
    client.set(MEMCACHE_DATE_KEY, date.today())

このエラーが発生しています:

トレースバック (最新の呼び出しが最後):
  ファイル「manage.py」の 4 行目
    setup_env(manage_py_env=真)
  setup_env のファイル「/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/aecmd.py」の 67 行目
    patch_all()
  ファイル "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/appenginepatcher/patch.py​​"、29 行目、patch_all 内
    patch_app_engine()
  ファイル "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/appenginepatcher/patch.py​​"、520 行目、patch_app_engine 内
    デシベル.モデル._meta = _meta(デシベル.モデル, ())
  ファイル「/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/appenginepatcher/patch.py​​」、258 行目、__init__ 内
    settings.INSTALLED_APPS
  ファイル "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/utils/functional.py"、269 行目、__getattr__ 内
  ファイル "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/conf/__init__.py"、40 行目、_setup 内

  ファイル "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/conf/__init__.py"、73 行目、__init__ 内

  ファイル "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/utils/importlib.py"、35 行目、import_module
  ファイル「/Users/benji/Projects/share-renting-engine/settings.py」の 120 行目
    from ragendja.settings_post import *
  ファイル「/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/ragendja/settings_post.py」の 98 行目
    check_app_imports(アプリ)
  ファイル "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/ragendja/settings_post.py"、63 行目、check_app_imports 内
    __import__(アプリ、{}、{}、[''])
  ファイル「/Users/benji/Projects/share-renting-engine/engine/__init__.py」の 5 行目
    もし date.today() != last_date():
  ファイル「/Users/benji/Projects/share-renting-engine/engine/utils/date.py」、12 行目、last_date
    return client.get(MEMCACHE_DATE_KEY)
  ファイル "/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/memcache/__init__.py"、行 428、get 内
    self._make_sync_call('memcache', 'Get', リクエスト, レスポンス)
  ファイル "/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py"、86 行目、MakeSyncCall 内
    return stubmap.MakeSyncCall(サービス、呼び出し、要求、応答)
  ファイル "/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py"、279 行目、MakeSyncCall 内
    assert stub, 'No api proxy found for service "%s"' % service
AssertionError: サービス「memcache」の API プロキシが見つかりません

app-engine-patch で memcache を使用するにはどうすればよいですか?

御時間ありがとうございます。

4

1 に答える 1

1

インポート時に memcache 呼び出しを行おうとしているようです。スタックトレースから判断すると、Django は App Engine 環境を設定する前にモジュールをインポートするため、モジュール レベルでの App Engine サービスへの呼び出しは開発サーバーで失敗します。

memcache への呼び出しを、要求ハンドラーから呼び出される関数内に移動すると、問題が解決するはずです。

于 2011-02-02T02:50:54.483 に答える