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 :
- ¿Conectarse al punto de acceso usando QPython?
- Combinando el front-end de html y el "back-end" de python en la aplicación móvil
- ¿Cómo detener un WebView lanzado desde SL4A de ocultar la barra de notificación?
- Agregue pesos al archivo .pb exportado por TensorFlow
- ¿Cómo autenticar la solicitud de POST de usuario de Android con Django REST API?
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.
- Acceso a LogCat desde Android a través de Python
- ImportError: dlopen falló: tiene mala magia ELF
- No se puede importar la clase de biblioteca de cliente de nodos de nube de google en el proyecto de Android
- Incrustar Python en Java en Android
- ¿Hay alguna manera de ejecutar Python en Android?
- Error de GLS: INVALID_AUDIENCE en los puntos finales de la nube de google
- ¿Cómo puedo crear un proyecto en kivy en android?
- Cómo ejecutar script Monkeyrunner en varios dispositivos al mismo tiempo
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
- ¿Cómo iniciar una actividad cuando se hace clic en la notificación?
- Iconos gratuitos para aplicaciones móviles