Google app engine 应用程序引擎修补程序中不存在Memcache?

Google app engine 应用程序引擎修补程序中不存在Memcache?,google-app-engine,memcached,app-engine-patch,python-memcached,Google App Engine,Memcached,App Engine Patch,Python Memcached,我正在尝试使用以下代码将日期存储到memcache中: from datetime import date from google.appengine.api.memcache import Client MEMCACHE_DATE_KEY = 'date' client = Client() def last_date(): return client.get(MEMCACHE_DATE_KEY) def new_date(): client.set(MEMCACHE_

我正在尝试使用以下代码将日期存储到memcache中:

from datetime import date from google.appengine.api.memcache import Client MEMCACHE_DATE_KEY = 'date' client = Client() def last_date(): return client.get(MEMCACHE_DATE_KEY) def new_date(): client.set(MEMCACHE_DATE_KEY, date.today()) 起始日期时间导入日期 从google.appengine.api.memcache导入客户端 MEMCACHE_DATE_KEY='DATE' client=client() def last_date(): 返回client.get(MEMCACHE\u DATE\u KEY) def new_date(): set(MEMCACHE\u DATE\u KEY,DATE.today()) 我得到这个错误:

Traceback (most recent call last): File "manage.py", line 4, in setup_env(manage_py_env=True) File "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/aecmd.py", line 67, in setup_env patch_all() File "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/appenginepatcher/patch.py", line 29, in patch_all patch_app_engine() File "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/appenginepatcher/patch.py", line 520, in patch_app_engine db.Model._meta = _meta(db.Model, ()) File "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/appenginepatcher/patch.py", line 258, in __init__ settings.INSTALLED_APPS File "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/utils/functional.py", line 269, in __getattr__ File "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/conf/__init__.py", line 40, in _setup File "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/conf/__init__.py", line 73, in __init__ File "/Users/benji/Projects/share-renting-engine/common/zip-packages/django-1.1.zip/django/utils/importlib.py", line 35, in import_module File "/Users/benji/Projects/share-renting-engine/settings.py", line 120, in from ragendja.settings_post import * File "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/ragendja/settings_post.py", line 98, in check_app_imports(app) File "/Users/benji/Projects/app-engine-patch-sample/common/appenginepatch/ragendja/settings_post.py", line 63, in check_app_imports __import__(app, {}, {}, ['']) File "/Users/benji/Projects/share-renting-engine/engine/__init__.py", line 5, in if date.today() != last_date(): File "/Users/benji/Projects/share-renting-engine/engine/utils/date.py", line 12, in last_date return client.get(MEMCACHE_DATE_KEY) File "/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/memcache/__init__.py", line 428, in get self._make_sync_call('memcache', 'Get', request, response) File "/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 86, in MakeSyncCall return stubmap.MakeSyncCall(service, call, request, response) File "/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 279, in MakeSyncCall assert stub, 'No api proxy found for service "%s"' % service AssertionError: No api proxy found for service "memcache" 回溯(最近一次呼叫最后一次): 文件“manage.py”,第4行,在 设置环境(管理环境=真) 文件“/Users/benji/Projects/app engine patch sample/common/appenginepatch/aecmd.py”,第67行,在安装环境中 patch_all() 文件“/Users/benji/Projects/app engine补丁示例/common/appenginepatch/appenginepatcher/patch.py”,第29行,在patch\u all中 修补程序应用程序引擎() 文件“/Users/benji/Projects/app engine补丁示例/common/appenginepatch/appenginepatcher/patch.py”,第520行,在补丁应用程序引擎中 db.Model.\u meta=\u meta(db.Model,()) 文件“/Users/benji/Projects/app engine补丁示例/common/appenginepatch/appenginepatcher/patch.py”,第258行,在__ settings.INSTALLED\u应用程序 文件“/Users/benji/Projects/share renting engine/common/zip packages/django-1.1.zip/django/utils/functional.py”,第269行,在__ 文件“/Users/benji/Projects/share renting engine/common/zip packages/django-1.1.zip/django/conf/__init__.py”,第40行,在安装程序中 文件“/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行 文件“/Users/benji/Projects/share renting engine/settings.py”,第120行,在 从ragendja.settings\u导入后* 文件“/Users/benji/Projects/app engine补丁示例/common/appenginepatch/ragendja/settings_post.py”,第98行,在 检查应用程序导入(应用程序) 文件“/Users/benji/Projects/app engine补丁示例/common/appenginepatch/ragendja/settings\u post.py”,第63行,在check\u app\u imports中 __导入(应用程序,{},{},['']) 文件“/Users/benji/Projects/share renting engine/engine/_init__.py”,第5行,在 如果日期为。今天()!=最后日期(): 文件“/Users/benji/Projects/share renting engine/engine/utils/date.py”,最后一天的第12行 返回client.get(MEMCACHE\u DATE\u KEY) 文件“/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine default.bundle/Contents/Resources/google\u appengine/google/appengine/api/memcache/\uuuuuuu init\uuuuuuuuuuuuu.py”,get中第428行 self.\u进行同步\u调用('memcache','Get',请求,响应) 文件“/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine default.bundle/Contents/Resources/google\u appengine/google/appengine/api/apiproxy\u stub\u map.py”,MakeSyncCall第86行 返回stubmap.MakeSyncCall(服务、调用、请求、响应) 文件“/Users/benji/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine default.bundle/Contents/Resources/google\u appengine/google/appengine/api/apiproxy\u stub\u map.py”,第279行,MakeSyncCall中 断言存根,“未找到服务“%s”的api代理”%service AssertionError:找不到服务“memcache”的api代理 如何将memcache与应用程序引擎补丁一起使用


感谢您抽出时间。

看起来您正在尝试在导入时调用memcache。从stacktrace判断,Django在设置App Engine环境之前导入您的模块,因此在模块级别对App Engine服务的任何调用都将在开发服务器上失败


将对memcache的调用移动到从请求处理程序调用的函数中,应该可以解决您的问题。

看起来您正在尝试在导入时进行memcache调用。从stacktrace判断,Django在设置App Engine环境之前导入您的模块,因此在模块级别对App Engine服务的任何调用都将在开发服务器上失败


将对memcache的调用移动到从请求处理程序调用的函数中,应该可以解决您的问题。

@Benjamin顺便说一句,这显然是Django Norel中的一个错误,因为它导致开发环境的行为与生产环境不同。你可能想向他们提交一个bug,我已经联系过他们了。谢谢你的帮助。Bejamin,你使用的是应用引擎补丁,而不是Django Norel。由于应用引擎补丁不再维护,我担心你将不得不自己修复此错误。如果可能的话,我建议您改用Django Nonl。@Waldemar抱歉,我的建议不好-我以为他使用Django Nonl是出于某种原因。@Benjamin顺便说一句,这显然是Django Nonl中的一个bug,因为它导致开发环境的行为与生产环境不同。你可能想向他们提交一个bug,我已经联系过他们了。谢谢你的帮助。Bejamin,你使用的是应用引擎补丁,而不是Django Norel。由于应用引擎补丁不再维护,我担心你将不得不自己修复此错误。“如果这对你来说是可能的话,我建议你改用Django Norel。”Waldemar抱歉,我的建议不好——我以为他使用Django Norel是有原因的。