请帮忙......我正在运行一些来自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错误:
追踪(最近一次通话): 在'<'module'>'
中输入文件“/cygdrive/c/data/my-program/MyProgram.py”,第48行从模型导入MyStoredObject 在'<'module'>'中输入文件“/cygdrive/c/data/my-program/Model.py”,第6行 来自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
等等......导出PYTHONPATH
导出路径
导出GAE_HOME
我该如何使这项工作?对于GAE专家来说,我在这里做错了什么?
答案 0 :(得分:6)
我在运行的脚本顶部有这个需要与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 :(得分:2)
这应该修复路径:
sdk_path = "/path/to/sdk/google_appengine/"
sys.path.insert(0, sdk_path)
import dev_appserver
dev_appserver.fix_sys_path()