【发布时间】: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) 中消失了——也就是说,您的示例代码现在可以正常工作。您能否检查一下并关闭问题...?
标签: python google-app-engine google-cloud-platform remoteapi