2013-10-06 43 views
2

我想用一个库(记忆),它使用的memcache这样的库:import memcache如何使用导入内存缓存在App Engine中

现在,在App Engine上,内存缓存必须导入这样的:from google.appengine.api import memcache

所以我用dev_appserver.py运行时出现这个错误:ImportError: No module named memcache

我可以在不修改它的情况下使用这个库吗?

回答

2

简短的回答是:即使您可以使用dev_appserver.py让本模块在本地实例上工作,但由于Google控制着服务器环境,因此您只能在将代码上传到其托管服务时使用其受支持的模块。请参阅here.

长的回答是,为了import memcache,您需要安装memcache软件包。如果您想尝试使用Google提供的memcache模块,则可以将其更改为from google.appengine.api import memcache,但Google的memcache可能与标记的Python memcache软件包存储的用途存在实质性和重大差异,并且可能会导致错误或无法使用所有。此外,即使您确实记得工作,您也无法在Google服务器上使用它,因为它不是受支持的第三方库(请参阅上文)。

1

也许尝试导入记忆之前,需要手动改变与GAE的API模块路径的sys.path:

sys.path.insert(0, '/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/') 

不知道有记忆,只是

import memcache 

作品。

2

假设App Engine的内存缓存是memcached的库相同。所以,如何建立与memcache.py模块:

from google.appengine.api.memcache import * 

然后记忆将能够使用memcache.set(),内存缓存导入memcache后.get()等。

2

为了进一步澄清jayhendren的答案 - 如果你打算使用GAE的内存缓存服务,你必须使用

从google.appengine.api进口的memcache

你不能用一个开源的内存缓存库。唯一可以使用标准python memcache lib的场景是,如果您在某处(例如,在计算引擎上)运行自己的memcache服务,并且您想通过套接字连接到该服务。我猜你没有那样做。

假设您想要使用GAE内建的memcache服务:由于GAE的memcache lib和标准pycache memcache库定义的API之间存在差异,因此您必须对记忆进行一些较小的更改,以便能够成功通话到GAE memcache库。大多数情况下,尽管面向功能的开发人员与标准的Python库相同。如果你得到它的工作,让我们知道!

相关问题