как использовать официальный api google translate в локальной среде выполнения с помощью python

# #python #google-api #google-translate

#питон #google-api #google-перевод

Вопрос:

после прочтения официального документа google translate api он предоставляет нам следующий пример кода:

 from google.cloud import translate def translate_text(text="Hello, world!", project_id="weighty-site-333613"):   client = translate.TranslationServiceClient().from_service_account_json('key.json')  location = "global"  parent = f"projects/{project_id}/locations/{location}"  response = client.translate_text(  request={  "parent": parent,  "contents": [text],  "mime_type": "text/plain",  "source_language_code": "en-US",  "target_language_code": "zh-CN",  }  )   for translation in response.translations:  print("Translated text: {}".format(translation.translated_text)) translate_text()  

Этот код правильно работал в облачном терминале Google. Однако, даже если я помещу файл «key.json» в ту же папку, появится ошибка, подобная этой:

 /usr/local/bin/python3.6 /Users/jiajunmao/Documents/GitHub/translator_of_excel/google_trans.py Traceback (most recent call last):  File "/Users/jiajunmao/Documents/GitHub/translator_of_excel/google_trans.py", line 37, in lt;modulegt;  translate_text()  File "/Users/jiajunmao/Documents/GitHub/translator_of_excel/google_trans.py", line 22, in translate_text  client = translate.TranslationServiceClient().from_service_account_json('key.json')  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/translate_v3/services/translation_service/client.py", line 354, in __init__  always_use_jwt_access=True,  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/translate_v3/services/translation_service/transports/grpc.py", line 158, in __init__  always_use_jwt_access=always_use_jwt_access,  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/translate_v3/services/translation_service/transports/base.py", line 110, in __init__  **scopes_kwargs, quota_project_id=quota_project_id  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/auth/_default.py", line 488, in default  raise exceptions.DefaultCredentialsError(_HELP_MESSAGE) google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started  Process finished with exit code 1  

может ли кто-нибудь сказать мне, что я должен делать на этом этапе? Огромное спасибо!

Комментарии:

1. У вас есть файл учетной записи службы в проекте?

Ответ №1:

Вам нужен файл json учетной записи службы с правильными разрешениями от GCP в разделе Учетные записи IAM и службы.

Затем вам нужно выполнить команду,

 GOOGLE_APPLICATION_CREDENTIALS = "/path/to/your/service_account.json"   

Комментарии:

1. Могу я узнать, куда мне его положить?

2. Рекомендуется в корневом каталоге, но поскольку вам нужно указать полный путь, вы можете разместить его в любом месте проекта.