我想用一个库(记忆),它使用的memcache这样的库:import memcache
如何使用导入内存缓存在App Engine中
现在,在App Engine上,内存缓存必须导入这样的:from google.appengine.api import memcache
所以我用dev_appserver.py运行时出现这个错误:ImportError: No module named memcache
我可以在不修改它的情况下使用这个库吗?
我想用一个库(记忆),它使用的memcache这样的库:import memcache
如何使用导入内存缓存在App Engine中
现在,在App Engine上,内存缓存必须导入这样的:from google.appengine.api import memcache
所以我用dev_appserver.py运行时出现这个错误:ImportError: No module named memcache
我可以在不修改它的情况下使用这个库吗?
简短的回答是:即使您可以使用dev_appserver.py
让本模块在本地实例上工作,但由于Google控制着服务器环境,因此您只能在将代码上传到其托管服务时使用其受支持的模块。请参阅here.
长的回答是,为了import memcache
,您需要安装memcache
软件包。如果您想尝试使用Google提供的memcache模块,则可以将其更改为from google.appengine.api import memcache
,但Google的memcache可能与标记的Python memcache软件包存储的用途存在实质性和重大差异,并且可能会导致错误或无法使用所有。此外,即使您确实记得工作,您也无法在Google服务器上使用它,因为它不是受支持的第三方库(请参阅上文)。
也许尝试导入记忆之前,需要手动改变与GAE的API模块路径的sys.path:
sys.path.insert(0, '/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/')
不知道有记忆,只是
import memcache
作品。
假设App Engine的内存缓存是memcached的库相同。所以,如何建立与memcache.py模块:
from google.appengine.api.memcache import *
然后记忆将能够使用memcache.set(),内存缓存导入memcache后.get()等。
为了进一步澄清jayhendren的答案 - 如果你打算使用GAE的内存缓存服务,你必须使用
从google.appengine.api进口的memcache
你不能用一个开源的内存缓存库。唯一可以使用标准python memcache lib的场景是,如果您在某处(例如,在计算引擎上)运行自己的memcache服务,并且您想通过套接字连接到该服务。我猜你没有那样做。
假设您想要使用GAE内建的memcache服务:由于GAE的memcache lib和标准pycache memcache库定义的API之间存在差异,因此您必须对记忆进行一些较小的更改,以便能够成功通话到GAE memcache库。大多数情况下,尽管面向功能的开发人员与标准的Python库相同。如果你得到它的工作,让我们知道!