【问题标题】:Can't access Google AppEngine external libraries无法访问 Google AppEngine 外部库
【发布时间】:2011-05-13 05:07:58
【问题描述】:

请帮助...我正在从 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 错误:

Traceback(最近一次调用最后一次): 文件“/cygdrive/c/data/my-program/MyProgram.py”,第 48 行,在 ''

从模型导入 MyStoredObject 文件“/cygdrive/c/data/my-program/Model.py”,第 6 行,在 '' 中 从 google.appengine.ext 导入数据库 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

我怎样才能做到这一点? GAE 专家有什么明显的我做错的地方吗?

【问题讨论】:

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


    【解决方案1】:

    我在运行的需要与 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

    希望这可以为您指明正确的方向

    【讨论】:

    • 谢谢...成功了!!!此外,我将 GAE 从默认的 Windows 程序文件目录中移出。它有助于简单起见,在我的 $GAE_PATH 中没有空格和 '(' 字符。
    【解决方案2】:

    这应该修复路径:

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

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2016-09-09
      • 2014-08-19
      • 2013-03-18
      • 2016-08-01
      相关资源
      最近更新 更多