如何使用在App Engine中导入memcache的库

时间:2013-10-06 17:00:16

标签: python google-app-engine

我想使用一个使用memcache的库(记忆):import memcache

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

因此,在使用dev_appserver.py运行时出现此错误:ImportError: No module named memcache

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

4 个答案:

答案 0 :(得分:3)

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

答案很长,为了import memcache,您需要安装memcache软件包。如果您想尝试使用Google提供的memcache模块,您可以将其更改为from google.appengine.api import memcache,但Google的memcache可能与记忆使用的标准Python memcache包存在重大差异,并且可能会出错或根本不工作。此外,即使你被记忆起来工作,你也无法在谷歌的服务器上使用它,因为它不是受支持的第三方库(见上文)。

答案 1 :(得分:2)

假设app引擎的memcache与memcached库相同..那么,如何使用以下命令创建memcache.py模块:

from google.appengine.api.memcache import *

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

答案 2 :(得分:2)

进一步澄清jayhendren的答案 - 如果您打算使用GAE的memcache服务,您必须使用

来自google.appengine.api import memcache

您无法使用开源memcache库。您可以使用标准python memcache lib的唯一方案是,如果您在某处运行自己的memcache服务(例如在Compute Engine上),并且您希望通过套接字连接到它。我猜你不是那样做的。

假设您想使用GAE内置的memcache服务:由于GAE的memcache lib和标准的python memcache libs定义的API之间存在差异,您必须对记忆进行一些小的更改,以便它能够成功地与之交谈GAE内存缓存库。尽管面向开发人员的功能与标准的python库相同。如果你让它工作,请告诉我们!

答案 3 :(得分:1)

在导入memorized之前,可能尝试使用GAE API模块路径手动更改sys.path:

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

不知道记忆,但只是

import memcache 

作品。