11

当我尝试部署我的应用程序时,出现以下错误:

开始更新app:flyingbat123,版本:0-1
获取当前资源限制。
avigmati 的密码:Traceback(最近一次通话最后一次):
  文件“C:\Program Files (x86)\Google\google_appengine\appcfg.py”,第 125 行,在
    run_file(__file__, globals())
  文件“C:\Program Files (x86)\Google\google_appengine\appcfg.py”,第 121 行,在 run_file
    execfile(script_path, globals_)
  文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 4062 行,在
    主要(sys.argv)
  文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 4053 行,在 main
    结果 = AppCfgApp(argv).Run()
  运行中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 2543 行
    自我行动(自我)
  __call__ 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 3810 行
    返回方法()
  文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 3006 行,在更新中
    self.UpdateVersion(rpcserver,self.basepath,appyaml)
  UpdateVersion 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 2995 行
    self.options.max_size)
  DoUpload 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 2122 行
    resource_limits = GetResourceLimits(self.rpcserver, self.config)
  GetResourceLimits 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 355 行
    resource_limits.update(GetRemoteResourceLimits(rpcserver, config))
  GetRemoteResourceLimits 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”,第 326 行
    版本=配置.版本)
  发送中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py”,第 379 行
    self._Authenticate()
  _Authenticate 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py”,第 437 行
    super(HttpRpcServer, self)._Authenticate()
  _Authenticate 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py”,第 281 行
    auth_token = self._GetAuthToken(凭证[0],凭证[1])
  _GetAuthToken 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py”,第 233 行
    e.headers, response_dict)
  文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py”,第 94 行,在 __init__
    self.reason = args[“错误”]
AttributeError:无法设置属性
2012-04-25 19:30:15(进程退出,代码 1)

以下是我的 app.yaml:

应用:flyingbat123
版本:0-1
运行时:蟒蛇
api_version: 1
线程安全:没有

这似乎是一个身份验证错误,但我输入了有效的电子邮件和密码。我究竟做错了什么?

4

6 回答 6

13

我有同样的问题。我对我的 google 帐户使用 2 因素身份验证,因此我之前必须输入应用程序特定密码才能将应用程序部署到 GAE。如果我输入了正常的谷歌密码,我得到了AttributeError: can't set attribute错误。但是,当我创建应用程序专用密码并使用它时,它就起作用了

于 2012-04-27T01:01:53.110 回答
7

错误消息表明我们的 SDK 中存在错误。因为这个bug,你看不到失败的原因。但是,仅当身份验证请求以 403 HTTP 错误结束时才调用此代码块。

您可以按如下方式临时调整文件 C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py 以查看实际原因(添加logger.warn(body)行)。

except urllib2.HTTPError, e:
  if e.code == 403:
    body = e.read()
    # Add a line bellow to see the actual error
    logger.warn(body)
    response_dict = dict(x.split("=", 1) for x in body.split("\n") if x)
    raise ClientLoginError(req.get_full_url(), e.code, e.msg,
                           e.headers, response_dict)
  else:
    raise

一旦找到原因,这个问题一定会更容易解决。解决问题后,如果您能在我们的问题跟踪器中创建有关此神秘错误消息的问题,我将不胜感激?

于 2012-04-25T14:38:11.470 回答
2

我知道这不能回答 OP 问题,但它可能会帮助其他遇到问题--oauth2的其他人在这个问题中提到的问题。

我启用了两步验证,并且我一直在使用应用程序专用密码,但发现每天左右查找和粘贴长字符串很乏味。我发现使用--oauth2退货

This application does not exist (app_id=u'my-app-id')

但通过添加--no_cookies选项

appcfg.py --oauth2 --no_cookies update my-app-folder\

现在,我每次只需在打开的浏览器窗口中单击 [允许访问] 即可进行身份验证。

我在 Windows 7 上使用 Python SDK 1.7.2

注意:我在其他地方找到了这个解决方案,但我不记得在哪里,所以我不能正确地归因它。对不起。

.

于 2012-10-05T16:18:27.060 回答
1

将 --oauth2 标志添加到 appcfg.py 更新以便更轻松地修复

于 2012-09-09T12:17:59.187 回答
1

我遇到了同样的问题,插入 logger.warn(body) 后,我得到了这个: WARNING appengine_rpc.py:231 Error=BadAuthentication Info=InvalidSecondFactor

标准错误消息可能更有帮助,但这让我想知道我是否不应该使用特定于应用程序的密码?

于 2012-06-03T15:43:30.420 回答
0

如果您的值与您的indefault_error重叠,也会发生这种情况。static_dirsapp.yaml

于 2012-10-16T10:15:11.243 回答