在不使用dev_appserver.py的情况下从google.appengine.api导入memcache

4 投票
2 回答
1124 浏览
提问于 2025-04-17 12:29

根据Google AppEngine的文档,导入memcache的方法是这样的:

from google.appengine.api import memcache

我在使用虚拟环境(virtualenv),并且正在创建一些脚本来测试我为AppEngine开发的一个库。我并不是在测试一个网站,而是想测试一个使用memcache的特定库。显然,如果不使用dev_appserver.py,我会遇到一个错误:ImportError: No module named google.appengine.api

我查看了dev_appserver.py源代码,但我首先想知道是否有更简单的解决方案,不需要像Google那样重写PATH。

谢谢!

2 个回答

2

为了测试,我们通常会这样在本地创建一个AppEngine库的副本:

GAE_VERSION=1.6.2

resttest: dependencies lib/google_appengine/google/__init__.py
    sh -c "PYTHONPATH=lib/google_appengine/ python tests/resttest.py --hostname=$(TESTHOST) --credentials-user=$(CREDENTIALS_USER)"

lib/google_appengine/google/__init__.py:
    curl -s -O http://googleappengine.googlecode.com/files/google_appengine_$(GAE_VERSION).zip
    unzip -q google_appengine_$(GAE_VERSION).zip
    rm -Rf lib/google_appengine
    mv google_appengine lib/
    rm google_appengine_$(GAE_VERSION).zip

dependencies:
    git submodule update --init
2

没有简单的解决办法,至少你需要设置你的Python路径。这就是你提到的dev_appserver包装器所做的事情。为了测试代码或库,我通常会写一个简单的包装器,基本上和dev_appserver做的事情差不多。

在某些情况下,你实际上还需要更进一步,初始化一些辅助工具。如果你仔细看dev_appserver的代码,就能看到这是怎么做的。

撰写回答