2

我想使用一个使用 memcache 的库(记忆),如下所示:import memcache

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

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

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

4

4 回答 4

3

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

长答案是,为了import memcache,您将需要memcache安装软件包。如果您想尝试使用 Google 提供的 memcache 模块,您可以将其更改为from google.appengine.api import memcache,但 Google 的 memcache 可能与记忆使用的标准 Python memcache 包有实质性和显着差异,它可能会抛出错误或根本不起作用. 此外,即使您确实记住了工作,您也无法在 Google 的服务器上使用它,因为它不是受支持的第三方库(见上文)。

于 2013-10-06T17:41:35.720 回答
2

为了进一步澄清 jayhendren 的回答——如果你打算使用 GAE 的 memcache 服务,你必须使用

从 google.appengine.api 导入内存缓存

你不能使用开源的内存缓存库。您可以使用标准 python memcache 库的唯一情况是,如果您在某个地方(例如在 Compute Engine 上)运行自己的 memcache 服务,并且您想通过套接字连接到该服务。我猜你不会那样做。

假设你想使用 GAE 的内置 memcache 服务:由于 GAE 的 memcache 库定义的 API 和标准的 python memcache 库之间存在差异,你必须对 memcache 进行一些小的更改,以便它可以成功地与 GAE 的 memcache 通信图书馆。在大多数情况下,面向开发人员的功能与标准 python 库相同。如果你得到它的工作,让我们知道!

于 2013-10-08T01:36:18.180 回答
2

假设应用引擎的 memcache 与 memcached 库相同。那么,如何创建 memcache.py 模块:

from google.appengine.api.memcache import *

然后memorized在导入memcache后就可以使用memcache.set()、memcache.get()等。

于 2013-10-06T20:42:19.387 回答
1

Maybe try to manually alter sys.path with GAE API modules path before importing memorised:

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

Don't know about memorised, but just

import memcache 

works.

于 2013-10-06T18:31:05.523 回答