# #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. Рекомендуется в корневом каталоге, но поскольку вам нужно указать полный путь, вы можете разместить его в любом месте проекта.