Установите GOOGLE_APPLICATION_CREDENTIALS в проекте Python, чтобы использовать API Google

Я начинаю программировать и программировать, чтобы узнать, как использовать API Google для Python.

Я имею:

  1. создал проект в Google Cloud и включил API, который я хочу использовать, API Natural Language.
  2. создал учетные данные и загрузил файл JSON учетных данных, сохранил его как apikey.JSON
  3. В терминале я выполнил эту команду: export GOOGLE_APPLICATION_CREDENTIALS = apikey.JSON, ошибка не выскочила.

Однако, даже когда я запускал простейший из кодов для этого, у меня есть ошибки, которые говорят, что varialbe полномочий не найден.

Я не уверен, что делать сейчас. Пожалуйста, любезно помогите.

Это мой код:

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)

И у меня есть ошибки:

Traceback (последний последний вызов): Файл "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py", строка 21, в файле sentiment_text (sampletxt)

Файл "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py", строка 5, в sentiment_text client = language.LanguageServiceClient()

Файл "/usr/local/lib/python3.6/site-packages/google/cloud/gapic/language/v1/language_service_client.py", строка 147, в init ssl_credentials = ssl_credentials)

Файл "/usr/local/lib/python3.6/site-packages/google/gax/grpc.py", строка 106, в create_stub

credentials = _grpc_google_auth.get_default_credentials(scopes)   File

"/usr/local/lib/python3.6/site-packages/google/gax/_grpc_google_auth.py", строка 62, в учетных данных get_default_credentials, _ = google.auth.default(scopes = scopes)

Файл "/usr/local/lib/python3.6/site-packages/google/auth/_default.py", строка 282, по умолчанию

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

автоматически определяют учетные данные. Установите GOOGLE_APPLICATION_CREDENTIALS или явно создайте учетные данные и запустите приложение. Для получения дополнительной информации см. Https://developers.google.com/accounts/docs/application-default-credentials.

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

Output Traceback (последний последний вызов):

  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'

Ответы

Ответ 1

Если вы работаете на ноутбуке jupyter и хотите установить переменную среды GOOGLE_APPLICATION_CREDENTIALS в коде Python:

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

Ответ 2

Другой способ проверить это - зайти в терминал и набрать:

# Linux/Unix
set | grep GOOGLE_APPLICATION_CREDENTIALS 

или же

# Windows:
set | Select-String -Pattern GOOGLE_APPLICATION_CREDENTIALS 

Это покажет вам переменную окружения и путь, где она находится. Если это ничего не возвращает, значит, вы не установили переменную или у вас может быть установлен неверный путь

Ответ 3

Я знаю, что на этот пост был дан ответ, но ниже приведен более GOOGLE_APPLICATION_CREDENTIALS способ указать переменную GOOGLE_APPLICATION_CREDENTIALS.

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

Ответ 4

Существует еще один более простой способ заставить его работать, просто указав учетные данные и передав их клиенту, как показано ниже.

    import os
    from google.oauth2 import service_account

    credentials = service_account.Credentials.from_service_account_file("your-json- 
    file-path-with-filename.json")
    client = language.LanguageServiceClient(credentials=credentials)