web-dev-qa-db-fra.com

google.auth.exceptions.DefaultCredentialsError:

Donc, je suis exactement la même procédure selon la documentation de l'API google translate, le code ci-dessous y était fourni.

# Imports the Google Cloud client library

from google.cloud import translate

# Instantiates a client
translate_client = translate.Client()

# The text to translate
text = u'Hello, world!'
# The target language
target = 'ru'

# Translates some text into Russian
translation = translate_client.translate(
    text,
    target_language=target)

print(u'Text: {}'.format(text))
print(u'Translation: {}'.format(translation['translatedText']))

Maintenant, quand je le compile, je suis retourné avec cette erreur:

Traceback (dernier appel le plus récent): Fichier "test.py", ligne 5, dans translate_client = translate.Client () Fichier "C:\ProgramData\Anaconda3\lib\site-packages\google\cloud\translate_v2\client.py ", ligne 65, dans init super (Client, self) .init (credentials = credentials, _http = _http) File" C:\ProgramData\Anaconda3\lib\site -packages\google\cloud\client.py ", ligne 129, dans init informations d'identification, _ = google.auth.default () Fichier" C:\ProgramData\Anaconda3\lib\site-packages\google\auth_default.py ", ligne 294, dans les informations d'identification par défaut, project_id = checker () Fichier" C:\ProgramData\Anaconda3\lib\site-packages\google\auth_default.py ", ligne 165, dans _get_explicit_environ_credentials os.environ [ environment_vars.CREDENTIALS]) Fichier "C:\ProgramData\Anaconda3\lib\site-packages\google\auth_default.py", ligne 89, dans _load_credentials_from_file 'Le fichier {} est introuvable.'. format (nom de fichier)) google.auth .exceptions.DefaultCredentialsError: le fichier D:\Summer Projects\Translate\social media analysis-2a59d94ba22d.json n'était pas a trouvé.

Le D:\Summer Projects\Translate\social media analysis-2a59d94ba22d.json est le chemin où j'ai mis ma clé fournie par le cloud de Google pour ce projet. Comment résoudre ça.

8
Samrat

Votre besoin de définir une variable d'environnement pour GOOGLE_APPLICATION_CREDENTIALS

Vous pouvez ajouter cela dans votre code en ajoutant les lignes suivantes:

credential_path = "D:\Summer Projects\Translate\social media analysis-2a59d94ba22d.json"
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = credential_path

Solution complète:

# Imports the Google Cloud client library

import os    
from google.cloud import translate

credential_path = "D:\Summer Projects\Translate\social media analysis-2a59d94ba22d.json"
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = credential_path

# Instantiates a client
translate_client = translate.Client()

# The text to translate
text = u'Hello, world!'
# The target language
target = 'ru'

# Translates some text into Russian
translation = translate_client.translate(
    text,
    target_language=target)

print(u'Text: {}'.format(text))
print(u'Translation: {}'.format(translation['translatedText']))
6
ScottMcC

Je m'occupe maintenant de l'API Vision. Ma solution dépend de la réponse ci-dessus.

Mais l'exemple de code de Google est un peu différent du code précédent.

Pour mon exemple de code est

def run_quickstart():
    import os
    import io
    from google.cloud import vision
    from google.cloud.vision import types
    ...

    # I made the modification here
    credential_path = "PATH"

    # for example
    # credential_path = "projectname-xxxxxxxx.json"

    # WRONG code
    # credential_path = "~/Downloads/projectname-xxxxxxxx.json"


    os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = credential_path

Il faut noter que je place le fichier JSON dans le même dossier que .py
donc le PATH n'est pas réellement un vrai chemin pour pointer le fichier JSON
Il va uniquement au nom du fichier JSON, comme ceci projectname-xxxxxxxx.json

0
Jason Hsu