#environment-variables #google-authentication #google-api-python-client
#переменные среды #google-аутентификация #google-api-python-client
Вопрос:
Я пытаюсь использовать Python для вызова API для обучения платформы Google Cloud AI. Путь к файлу JSON ключа моей учетной записи службы — «/Users / my_mac_username / service_account_key.json», и я добавил оператор экспорта в файл bash_profile, чтобы он выглядел как:
# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH
export GOOGLE_APPLICATION_CREDENTIALS="/Users/my_mac_username/service_account_key.json"
Тем не менее, я все еще получил ошибку:
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials.
Кроме того, у меня установлена папка google-cloud-sdk. Я хотел бы знать, в каком файле я должен установить переменную среды. Спасибо за вашу помощь!
Комментарии:
1. Если вы запускаете
echo $GOOGLE_APPLICATION_CREDENTIALS
из командной строки, вы получаете правильные данные? Вы открывали новую консоль с момента установки значения в вашем bash_profile?2. Нет, я получил пустую строку
3. Запустите
source ~/.bash_profile
, чтобы загрузить свой профиль или открыть новое окно терминала. Вы также можете запускатьexport GOOGLE_APPLICATION_CREDENTIALS="/Users/my_mac_username/service_account_key.json"
прямо с этой консоли4. Спасибо, чувак, это устраняет проблему! Есть ли способ постоянно устанавливать переменную среды?
5. Ваша настройка в ~/.bash_profile будет делать это при условии, что вы используете терминал bash. Вы можете увидеть, запустив
echo $SHELL
в своем терминале
Ответ №1:
Предполагая bash
, что ваша оболочка терминала установлена правильно, у вас правильно настроена переменная среды. Новая переменная будет недоступна до тех пор, пока вы не откроете терминал повторно или не запустите source ~/.bash_profile
его в текущем терминале.
Если вы используете zsh, добавьте экспорт в свой ~/.zshrc
файл.
Чтобы определить, какую оболочку вы используете в данный момент, используйте: echo $SHELL
из командной строки