Google App Engine 远程 API 无法从本地客户端运行

Posted

技术标签:

【中文标题】Google App Engine 远程 API 无法从本地客户端运行【英文标题】:Google App Engine Remote API does not work from local client 【发布时间】:2013-05-21 16:51:31 【问题描述】:

这是使用 Python SDK 版本 1.8.0。

我的远程 API 使用 remote_api_shell.py 可以正常工作,但在尝试从 python 脚本中访问时不起作用。我正在使用sample code from google:

from google.appengine.ext.remote_api import remote_api_stub
import getpass

def auth_func():
  return (raw_input('Username:'), getpass.getpass('Password:'))

remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func,
                               'localhost:8080')

我还从dev_appserver.py 导入fix_sys_path(),以便为谷歌应用引擎SDK 正确设置我的sys.path

import dev_appserver
dev_appserver.fix_sys_path()

在我的sys.path 中添加以下行以及其他路径:

'/google_appengine_1.8.0/lib/fancy_urllib'

但是,当调用上述remote_api_stub.ConfigureRemoteApi() 时,会抛出以下错误:

opener.add_handler(fancy_urllib.FancyProxyHandler())
AttributeError: 'module' object has no attribute 'FancyProxyHandler'

【问题讨论】:

谷歌提供的fix_sys_path() 似乎没有正确定位fancy_urllib 模块。 fix_sys_path() 将路径设置为:/google_appengine/lib/fancy_urllib/ 但是,模块实际上位于这里:/google_appengine/lib/fancy_urllib/fancy_urllib/ 所以我只是将最深的fancy_urllib 的内容复制到父目录中。这是一种解决方法,我不喜欢这样修改 SDK。谁有更好的解决方案? 在 google 问题跟踪器上提交错误。 code.google.com/p/googleappengine/issues/list 是的,这绝对看起来像一个错误,并且这些文件属于层次结构中的一个目录。在跟踪器上报告问题。 尝试重现该问题,但它似乎在当前的 SDK (1.9.18) 中消失了——也就是说,您的示例代码现在可以正常工作。您能否检查一下并关闭问题...? 【参考方案1】:

等 7 年,似乎一切正常。

【讨论】:

以上是关于Google App Engine 远程 API 无法从本地客户端运行的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine 的用户 API 限制太多?

Google App Engine 频道 API 配额

使用搜索 API Python - Google App Engine 大表

Google App Engine - 请求 BigQuery API 时出现 401

Google App Engine Search API 自定义评分

Google App Engine 上的传出 HTTP 请求位置