Argumento de palabra clave inesperado “contexto” al usar appcfg.py

Intenté actualizar un proyecto en Google App Engine a través de appcfg.py:

C:\> "C:\Program Files (x86)\Google\google_appengine\appcfg.py" update c:\secondApp 

Pero me sale el siguiente error inmediatamente (las líneas superiores se ignoran):

 File "C:\Python27\lib\urllib2.py", line 1240, in https_open context=self._context) TypeError: do_open() got an unexpected keyword argument 'context' 

Decidí profundizar en el archivo urllib2.py y encontrar el problema. Después de unos minutos de revisión del código, llegué a esta conclusión de que no existe una sobrecarga que acepte un parámetro denominado context . Por lo tanto, he cambiado el fragmento de código original:

 def https_open(self, req): return self.do_open(httplib.HTTPSConnection, req, context=self._context) 

a

 def https_open(self, req): return self.do_open(httplib.HTTPSConnection, req) 

¡y voilá! Funciona (aunque surge otro problema relacionado con la autenticación, pero el primer problema se resuelve). Pero es muy extraño que en un lanzamiento oficial exista un error como este, mientras que es muy probable que otras personas hayan encontrado el mismo problema. ¡Sorprendentemente, no pude encontrar este problema reportado por nadie más!

¿Hay algo mal en el módulo? ¿Estoy mezclando versiones erróneas de paquetes instalados? ¿Alguna ayuda?

Mi versión del SDK de Google App Engine: 1.9.17 x64

Mi versión de Python instalada: 2.7.9 x64

Mi plataforma: Windows 8.1 x64

y no estoy familiarizado con Python: D

Solución:

Como mencionó Migel Tissera, el problema es sobre la autenticación. Pero intenté su orden propuesta y obtuve el mismo error. Afortunadamente, ejecuté el siguiente comando y éxito! (También agregué los conmutadores –noauth_local_webserver y –no_cookies):

 appcfg.py --noauth_local_webserver --oauth2 --skip_sdk_update_check --no_cookies update c:\secondApp 

Me encontré con el mismo problema hace aproximadamente media hora … En realidad no tiene nada que ver con el archivo urllib2, tiene algo que ver con la autenticación. Esto me lo arregló..

Utilice appcfg.py con la bandera –oauth2 . Intenta esto, appcfg.py –oauth2 update / path / to / your / app . La primera vez verá la ventana del navegador, donde deberá permitir el acceso a su cuenta. Luego puede implementar su aplicación sin ingresar el correo electrónico y la contraseña.

Espero que esto ayude. Me alegra publicar mi primera respuesta aquí! 🙂

Gracias migel

Este error también puede ocurrir al usar una versión incompatible del SDK de Appengine.

En mi caso la actualización del SDK lo solucionó.