Google traslate api - PermissionError: [Errno 1] Операция не разрешена: - PullRequest
0 голосов
/ 20 октября 2019

Я использую Anaconda Navigator, и я начинаю изучать, как использовать API Google

Я следовал инструкции в Интернете, чтобы начать использовать API https://cloud.google.com/translate/docs/reference/libraries

первая часть, которую я получаюзастрял на этом этапе

Укажите учетные данные для аутентификации для своего кода приложения, установив переменную среды> GOOGLE_APPLICATION_CREDENTIALS. Замените [PATH] на путь к файлу JSON, который содержит> ключ вашей учетной записи службы, а [FILE_NAME] - на имя файла. Эта переменная применяется только к вашему текущему сеансу оболочки, поэтому, если вы открываете новый сеанс, установите переменную снова.

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

Поэтому я прибег к второму решению, которое я нашел в Интернете

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

, выполнив это, программа восстанавливает местоположение GOOGLE_APPLICATION_CREDENTIALS

. Теперь проблема заключается в том, что при запуске кода ниже

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

я получаю следующую ошибку


---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
<ipython-input-2-a721e1abc1b1> in <module>
      3 
      4 # Instantiates a client
----> 5 translate_client = translate.Client()
      6 
      7 # The text to translate

~/opt/anaconda3/lib/python3.7/site-packages/google/cloud/translate_v2/client.py in __init__(self, target_language, credentials, _http, client_info, client_options)
     80     ):
     81         self.target_language = target_language
---> 82         super(Client, self).__init__(credentials=credentials, _http=_http)
     83 
     84         kw_args = {"client_info": client_info}

~/opt/anaconda3/lib/python3.7/site-packages/google/cloud/client.py in __init__(self, credentials, _http)
    130             raise ValueError(_GOOGLE_AUTH_CREDENTIALS_HELP)
    131         if credentials is None and _http is None:
--> 132             credentials, _ = google.auth.default()
    133         self._credentials = google.auth.credentials.with_scopes_if_required(
    134             credentials, self.SCOPE

~/opt/anaconda3/lib/python3.7/site-packages/google/auth/_default.py in default(scopes, request)
    303 
    304     for checker in checkers:
--> 305         credentials, project_id = checker()
    306         if credentials is not None:
    307             credentials = with_scopes_if_required(credentials, scopes)

~/opt/anaconda3/lib/python3.7/site-packages/google/auth/_default.py in _get_explicit_environ_credentials()
    163     if explicit_file is not None:
    164         credentials, project_id = _load_credentials_from_file(
--> 165             os.environ[environment_vars.CREDENTIALS])
    166 
    167         return credentials, project_id

~/opt/anaconda3/lib/python3.7/site-packages/google/auth/_default.py in _load_credentials_from_file(filename)
     89             'File {} was not found.'.format(filename))
     90 
---> 91     with io.open(filename, 'r') as file_obj:
     92         try:
     93             info = json.load(file_obj)

PermissionError: [Errno 1] Operation not permitted: '/Users/path/togooglecredentials.json

Я не понимаю, почему программа возвращает операцию, не разрешенную

...