GAE – Ошибка развертывания: «AttributeError: невозможно установить атрибут»

Когда я пытаюсь развернуть свое приложение, я получаю следующую ошибку:

 Запуск обновления приложения: 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, в основном
     result = AppCfgApp (argv) .Run ()
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 2543, в Run
     self.action (Я)
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 3810, в __call__
     метод возврата ()
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 3006, в обновлении
     self.UpdateVersion (rpcserver, self.basepath, appyaml)
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 2995, в UpdateVersion
     self.options.max_size)
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 2122, в DoUpload
     resource_limits = GetResourceLimits (self.rpcserver, self.config)
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 355, в GetResourceLimits
     resource_limits.update (GetRemoteResourceLimits (rpcserver, config))
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py", строка 326, в GetRemoteResourceLimits
     версия = config.version)
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appengine_rpc.py", строка 379, в поле Отправить
     self._Authenticate ()
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appengine_rpc.py", строка 437, в _Authenticate
     super (HttpRpcServer, self) ._ Authenticate ()
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appengine_rpc.py", строка 281, в _Authenticate
     auth_token = self._GetAuthToken (учетные данные [0], учетные данные [1])
   Файл «C: \ Program Files (x86) \ Google \ google_appengine \ google \ appengine \ tools \ appengine_rpc.py", строка 233, в _GetAuthToken
     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
 runtime: python
 api_version: 1
 threadsafe: no

Это похоже на ошибку аутентификации, но я ввожу действительный адрес электронной почты и пароль. Что я делаю не так?

У меня такая же проблема. Я использую двухфакторную аутентификацию для своей учетной записи google, поэтому ранее мне приходилось вводить пароль для конкретного приложения для развертывания приложений в GAE. Если я ввел свой обычный пароль Google, я получил AttributeError: can't set attribute ошибку AttributeError: can't set attribute . Однако, когда я создал специальный пароль приложения и использовал его, он работал

Сообщение об ошибке указывает на наличие ошибки в нашем SDK. Из-за этой ошибки вы не видите причины сбоя. Однако этот кодовый блок вызывается только тогда, когда запрос аутентификации заканчивается ошибкой HTTP 403.

Вы можете временно настроить файл 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 

Как только, если вы найдете причину, эту проблему нужно решить гораздо проще. После того, как вы решите проблему, я был бы признателен, если бы вы могли создать проблему с этим загадочным сообщением об ошибке в нашем трекере проблем ?

Я знаю, что это не отвечает на вопрос ОП, но это может помочь другим, которые испытывают проблемы с использованием --oauth2 упомянутыми другими в этом вопросе.

У меня есть двухэтапная аутентификация, и я использовал пароль, специфичный для приложения, но мне было сложно искать и вставлять длинную строку каждый день или около того. Я обнаружил, что использование --oauth2 возвращает

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

но добавив опцию --no_cookies

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

Теперь я могу выполнять аутентификацию, просто щелкнув [Разрешить доступ] в открывшемся окне браузера.

Я использую Python SDK 1.7.2 для Windows 7

ПРИМЕЧАНИЕ. Я нашел это решение в другом месте, но я не могу вспомнить, где, поэтому я не могу правильно его атрибутировать. Сожалею.

,

У меня была такая же проблема, и после вставки logger.warn (body) я получаю следующее: WARNING appengine_rpc.py:231 Error=BadAuthentication Info=InvalidSecondFactor

Стандартное сообщение об ошибке могло быть более полезным, но это заставляет задуматься, не следует ли мне использовать пароль для конкретного приложения?

Добавьте флаг –oauth2 в обновление appcfg.py для более легкого исправления

Это также происходит, если значение default_error совпадает с вашим static_dirs в static_dirs .