无法访问Google AppEngine外部库
请帮帮我……我在Cygwin上运行一些Python代码,但无法导入GoogleAppEngine (GAE) 的外部数据API。我觉得这可能是环境变量的问题。我可以从命令行运行GAE和'remote_data_api_shell.py',但无法运行引用GAE的Python模块。
我现在处于试错阶段,尝试各种我能想到的环境变量组合。什么都不行,我的沮丧感越来越强。
GAE(1.5)的位置是(Windows路径):C:\Program Files (x86)\Google\google_appengine
这是我的Python错误:
追踪信息(最近的调用在最前面): 文件 "/cygdrive/c/data/my-program/MyProgram.py",第48行,在'<'module'>'中
from Model import MyStoredObject 文件 "/cygdrive/c/data/my-program/Model.py",第6行,在'<'module'>'中 from google.appengine.ext import db ImportError: 没有名为google.appengine.ext的模块
我在Cygwin的bashrc文件中设置了我的环境变量。我的bashrc文件包含:
GAE_HOME="/cygdrive/c/Program\ Files\ (x86)/Google/google_appengine"
我在这里尝试了许多字符串和字符的组合。
PATH="$PATH:$GAE_HOME"
PYTHONPATH="$PYTHONPATH:$GAE_HOME:$GAE_HOME/lib/yaml/lib:"
还尝试了
$GAE_HOME/google/appengine/ext
和更多其他组合……export PYTHONPATH
export PATH
export GAE_HOME
我该如何让这个工作?有没有GAE专家能看出我在这里做错了什么?
2 个回答
这段代码应该能修复路径问题:
sdk_path = "/path/to/sdk/google_appengine/"
sys.path.insert(0, sdk_path)
import dev_appserver
dev_appserver.fix_sys_path()
我在需要和appengine SDK互动的脚本顶部加了这些内容
import sys
import os
# locate app-engine SDK
AE_PATH = "/path/to/sdk/google_appengine/"
# path to app code
APP_PATH = os.path.abspath(".")
# load the AE paths (as stolen from dev_appserver.py)
EXTRA_PATHS = [
APP_PATH,
AE_PATH,
os.path.join(AE_PATH, 'lib', 'antlr3'),
os.path.join(AE_PATH, 'lib', 'django'),
os.path.join(AE_PATH, 'lib', 'ipaddr'),
os.path.join(AE_PATH, 'lib', 'webob'),
os.path.join(AE_PATH, 'lib', 'yaml', 'lib'),
os.path.join(AE_PATH, 'lib', 'fancy_urllib'), # issue[1]
]
sys.path = EXTRA_PATHS + sys.path
[1] fancy_urllib 问题
希望这些能帮你找到正确的方向