web-dev-qa-db-fra.com

Définir GOOGLE_APPLICATION_CREDENTIALS dans un projet Python pour utiliser Google API

Je suis un débutant en programmation et j'essaie d'apprendre à utiliser l'API Google avec Python.

J'ai:

  1. créé un projet sur Google Cloud et activé l’API que je souhaite utiliser, l’API de langage naturel.
  2. créé une information d'identification et téléchargé le fichier JSON d'identification, puis enregistrez-le sous le nom apikey.JSON
  3. Dans le terminal, j'ai exécuté cette commande: export GOOGLE_APPLICATION_CREDENTIALS = apikey.JSON, aucune erreur ne s'est produite.

Cependant, même lorsque j’exécutais le code le plus simple pour cela, j’ai des erreurs qui disent que l’identifiant varialbe n’est pas trouvé. 

Je ne sais pas quoi faire maintenant. S'il vous plaît bien vouloir aider.

C'est mon code:

from google.cloud import language

def sentiment_text(text):

    client = language.LanguageServiceClient()

    sentiment = client.analyze_sentiment(text).document_sentiment

    print('Score: {}'.format(sentiment.score))
    print('Magnitude: {}'.format(sentiment.magnitude))

sampletxt='Python is great'

sentiment_text(sampletxt)

Et j'ai des erreurs:

Traceback (dernier appel passé): Fichier "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py", ligne 21, dans sentiment_text (sampletxt)

Fichier "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py", ligne 5, dans sentiment_text client = language.LanguageServiceClient ()

Fichier "/usr/local/lib/python3.6/site-packages/google/cloud/gapic/language/v1/language_service_client.py", ligne 147, dans init ssl_credentials = ssl_credentials)

Fichier "/usr/local/lib/python3.6/site-packages/google/gax/grpc.py", ligne 106, dans create_stub

credentials = _grpc_google_auth.get_default_credentials(scopes)   File

"/usr/local/lib/python3.6/site-packages/google/gax/_grpc_google_auth.py", ligne 62, dans get_default_credentials informations d'identification, _ = google.auth.default (scopes = scopes)

Fichier "/usr/local/lib/python3.6/site-packages/google/auth/_default.py", ligne 282, par défaut

raise exceptions.DefaultCredentialsError(_HELP_MESSAGE) google.auth.exceptions.DefaultCredentialsError: Could not

déterminer automatiquement les informations d'identification. S'il vous plaît définir GOOGLE_APPLICATION_CREDENTIALS ou créer explicitement les informations d'identification et réexécutez l'application. Pour plus d'informations, s'il vous plaît voir https://developers.google.com/accounts/docs/application-default-credentials .

import os 
print(os.environ['GOOGLE_APPLICATION_CREDENTIALS']) 

Traceback de sortie (dernier appel le plus récent): 

  File "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple‌​.py", line 2, in <module>  
print(os.environ['GOOGLE_APPLICATION_CREDENTIALS']) 
   File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework‌​/Versions/3.6/lib/py‌​thon3.6/os.py", line 669, in getitem  
raise KeyError(key) from None KeyError: 'GOOGLE_APPLICATION_CREDENTIALS'
15
Liam

Si vous travaillez sur un bloc-notes jupyter et souhaitez définir la variable d’environnement GOOGLE_APPLICATION_CREDENTIALS en code Python:

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/path/to/file.json"
63
Marius

Une autre façon de tester cela consiste à entrer dans le terminal et à taper: 

set | grep GOOGLE_APPLICATION_CREDENTIALS 

cela vous montrera la variable d'environnement et le chemin où elle se trouve. Si cela ne renvoie rien, alors vous n'avez pas défini la variable ou vous avez peut-être un mauvais chemin

1
seanbrhn3

Je sais que ce message a été répondu, mais voici une façon plus simple de spécifier le GOOGLE_APPLICATION_CREDENTIALS

client = language.LanguageServiceClient.from_service_account_json("/path/to/file.json")
0
sdikby