在不使用dev_appserver.py的情况下从google.appengine.api导入memcache
根据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的代码,就能看到这是怎么做的。