GAE - 部署错误:"AttributeError:无法设置属性"

avi*_*vig 11 python deployment google-app-engine

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

Starting update of app: flyingbat123, version: 0-1
Getting current resource limits.
Password for avigmati: Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 125, in 
    run_file(__file__, globals())
  File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 121, in run_file
    execfile(script_path, globals_)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 4062, in 
    main(sys.argv)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 4053, in main
    result = AppCfgApp(argv).Run()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 2543, in Run
    self.action(self)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 3810, in __call__
    return method()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 3006, in Update
    self.UpdateVersion(rpcserver, self.basepath, appyaml)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 2995, in UpdateVersion
    self.options.max_size)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 2122, in DoUpload
    resource_limits = GetResourceLimits(self.rpcserver, self.config)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 355, in GetResourceLimits
    resource_limits.update(GetRemoteResourceLimits(rpcserver, config))
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 326, in GetRemoteResourceLimits
    version=config.version)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 379, in Send
    self._Authenticate()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 437, in _Authenticate
    super(HttpRpcServer, self)._Authenticate()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 281, in _Authenticate
    auth_token = self._GetAuthToken(credentials[0], credentials[1])
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 233, in _GetAuthToken
    e.headers, response_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 94, in __init__
    self.reason = args["Error"]
AttributeError: can't set attribute
2012-04-25 19:30:15 (Process exited with code 1)

以下是我的app.yaml:

application: flyingbat123
version: 0-1
runtime: python
api_version: 1
threadsafe: no

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

小智 13

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


Tak*_*suo 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
Run Code Online (Sandbox Code Playgroud)

一旦找到原因,这个问题必须要容易解决.在您解决问题之后,如果您可以在我们的问题跟踪器中创建有关此神秘错误消息的问题,我将不胜感激?