AttributeError: el objeto 'module' no tiene ningún atributo 'SignedJwtAssertionCredentials'

Problema : he estado usando muestras de Python Script de Google para subir el apk a Play Store y obtener la lista de aplicaciones publicadas a través de mi cuenta ( list_apks.py y upload_apk.py ). Sin embargo recientemente comenzó a romper. He intentado actualizar los paquetes como google-api-python-client , oath2client etc haciendo pip install --update packagename pero no ayudó.

Registros :

Esto si durante la lista de apk:

 Determining latest version for my.package.name... error 25-Feb-2016 06:30:52 Traceback (most recent call last): error 25-Feb-2016 06:30:52 File "list_apks.py", line 80, in <module> error 25-Feb-2016 06:30:52 main() error 25-Feb-2016 06:30:52 File "list_apks.py", line 46, in main error 25-Feb-2016 06:30:52 credentials = client.SignedJwtAssertionCredentials( error 25-Feb-2016 06:30:52 AttributeError: 'module' object has no attribute 'SignedJwtAssertionCredentials' build 25-Feb-2016 06:30:52 Found latest APK version: build 25-Feb-2016 06:30:52 Generated new APK version: 1 

Esto es cuando se carga apk:

 25-Feb-2016 06:33:30 Uploading APK... 25-Feb-2016 06:33:30 Traceback (most recent call last): 25-Feb-2016 06:33:30 File "upload_apk.py", line 115, in <module> 25-Feb-2016 06:33:30 main(sys.argv) 25-Feb-2016 06:33:30 File "upload_apk.py", line 62, in main 25-Feb-2016 06:33:30 credentials = client.SignedJwtAssertionCredentials( 25-Feb-2016 06:33:30 AttributeError: 'module' object has no attribute 'SignedJwtAssertionCredentials' 

Código sniplet :

 import argparse from apiclient.discovery import build import httplib2 from oauth2client import client SERVICE_ACCOUNT_EMAIL = ( 'myaccountemail.com') # Declare command-line flags. argparser = argparse.ArgumentParser(add_help=False) argparser.add_argument('package_name', help='The package name. Example: com.android.sample') def main(): # Load the key in PKCS 12 format that you downloaded from the Google APIs # Console when you created your Service account. f = file('mykeyname.p12', 'rb') key = f.read() f.close() # HERE IS THE EXCEPTION credentials = client.SignedJwtAssertionCredentials( SERVICE_ACCOUNT_EMAIL, key, scope='https://www.googleapis.com/auth/androidpublisher') http = httplib2.Http() http = credentials.authorize(http) ... 

¿Qué más puedo probar? Apreciaría tu ayuda.

Finalmente, después de tantos días, fui capaz de encontrar una respuesta. Resulta que la clase SignedJwtAssertionCredentials fue eliminada del paquete oath2client python en la actualización 2.0.0 . Ya no estaba bajo oauth2client.client . El comportamiento se ha trasladado a oauth2client.service_account.ServiceAccountCredentials .

Después trabajó para mí:

 import argparse from apiclient.discovery import build from oauth2client.service_account import ServiceAccountCredentials import httplib2 from oauth2client import client SERVICE_ACCOUNT_EMAIL = ('myaccountemail.com') # Declare command-line flags. argparser = argparse.ArgumentParser(add_help=False) argparser.add_argument('package_name', help='The package name. Example: com.android.sample') def main(): key='mykeyname.p12' scope = 'https://www.googleapis.com/auth/androidpublisher' credentials = ServiceAccountCredentials.from_p12_keyfile( SERVICE_ACCOUNT_EMAIL, key, scopes=[scope] ) http = httplib2.Http() http = credentials.authorize(http) .... 

Fuente:

  • SignedJwtAssertionCredentials ha sido eliminado: ¿Por qué?

  • Oauth2client-Release 2.0.0

  • Inicializando la conexión bluetooth android (cliente) a python (servidor) en pc
  • Error de la aplicación GAE Python (servicios de usuario) en Android Chrome con varias cuentas de Google asociadas
  • Animar objeto utilizando datos de acelerómetro de Android
  • Transmita un mensaje a todas las máquinas disponibles en WiFi
  • Enviar eventos desde python a javascript usando sl4a
  • ¿Cómo puedo obtener el nombre del contacto con su número?
  • Uso de SL4A (Python) y bluetooth
  • Ejecución de hello.py desde un proceso Android
  • ¿No puedo recibir mi mensaje en mi dispositivo Android a través de la mensajería en la nube de google?
  • Kivy a Apk en Windows
  • Cómo llamar a Python script desde Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.