无法访问Google AppEngine外部库

时间:2011-05-13 05:07:58

标签: python google-app-engine cygwin environment-variables

请帮忙......我正在运行一些来自cygwin的python代码,我无法导入GoogleAppEngine(GAE)外部数据API。我认为这可能是一个环境变量问题。我可以从命令行运行GAE和'remote_data_api_shell.py',但是我无法运行引用GAE的python模块。

我正处于试错模式,尝试我能想到的环境变量字符串的每个组合。什么都行不通,我的挫折感越来越大。

  1. GAE(1.5)位于(Windows路径):C:\ Program Files(x86)\ Google \ google_appengine

  2. 这是我的Python错误:

  3.   

    追踪(最近一次通话):   在'<'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的模块

      
    1. 我在我的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

    2. 我该如何使这项工作?对于GAE专家来说,我在这里做错了什么?

2 个答案:

答案 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] fancy_urllib issue

希望能指出正确的方向

答案 1 :(得分:2)

这应该修复路径:

sdk_path = "/path/to/sdk/google_appengine/"
sys.path.insert(0, sdk_path)
import dev_appserver
dev_appserver.fix_sys_path()