google.auth.exceptions.DefaultCredentialsError:

3

Итак, я следую той же процедуре, точно в соответствии с документацией по API перевода Google, в ней был указан код ниже.

# 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']))

Теперь, когда я скомпилирую его, я возвращаюсь с этой ошибкой:

Traceback (последний последний вызов): Файл "test.py", строка 5, в файле translate_client = translate.Client() "C:\ProgramData\Anaconda3\lib\site-packages\google\cloud\translate_v2\client.py ", строка 65, в init super (Client, self). init (credentials = credentials, _http = _http) Файл "C:\ProgramData\Anaconda3\lib\site-packages\google\cloud\client.py", строка 129, в учетных данных init, _ = google.auth.default() Файл "C:\ProgramData\Anaconda3\lib\site-packages\google\auth_default.py", строка 294, в учетных данных по умолчанию, project_id = checker() Файл "C:\ProgramData\Anaconda3\lib\site-packages\google\auth_default.py ", строка 165, в _get_explicit_environ_credentials os.environ [environment_vars.CREDENTIALS]) Файл" C:\ProgramData\Anaconda3\lib\site-packages\google\auth_default.py ", строка 89, в _load_credentials_from_file 'Файл { } не найден. '. format (filename)) google.auth.exceptions.DefaultCredentialsError: Файл D:\Summer Projects\Translate\social media analysis-2a59d94ba22d.json не найден.

D:\Summer Projects\Translate\social media analysis-2a59d94ba22d.json - это путь, по которому я поместил свой ключ, предоставленный облаком Google для этого проекта. Как это решить.

Теги:
google-cloud-platform
google-translate

2 ответа

3
Лучший ответ

Необходимость установки переменной среды для GOOGLE_APPLICATION_CREDENTIALS

Вы можете добавить это в свой код, добавив следующие строки:

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

Полное решение:

# 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'] = crendential_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']))
  • 0
    Большое спасибо, что в вашем коде была опечатка, она должна быть os.environ ['GOOGLE_APPLICATION_CREDENTIALS'] = credential_path
  • 1
    Кроме того, вы можете найти дополнительную информацию о том, как настроить аутентификацию для клиентских библиотек, в этой ссылке на документацию .
Показать ещё 1 комментарий
0

Сейчас я имею дело с API видения. Мое решение зависит от ответа выше.

Но пример кода от Google немного отличается от предыдущего кода.

Для моего примера кода

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

Следует отметить, что я помещаю файл JSON в ту же папку, что и .py
поэтому путь PATH не является реальным путем для указания файла JSON
Это только идет к имени файла JSON, как этот projectname-xxxxxxxx.json

Ещё вопросы

Сообщество Overcoder
Наверх
Меню