2015-11-05 1 views
1

Я писал свое пользовательское хранилище файлов для Django с помощью gcloud.Как перезаписать GOOGLE_APPLICATION_CREDENTIALS в gcloud для python

И есть проблемы с gloud path, где он ищет служебную учетную запись JSON. я пытаюсь использовать переменную GOOGLE_APPLICATION_CREDENTIALS:

GOOGLE_APPLICATION_CREDENTIALS = os.path.join(BASE_DIR, 'google.json') 

Но это не имеет никакого эффекта. Он всегда ищет google.json в верхней папке моего проекта (и он отлично работает, если я помещаю его там). Я получил эту ошибку:

oauth2client.client.ApplicationDefaultCredentialsError: File ../DjangoProjects/folder/google.json (pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist! 

поэтому мой проект находится в File ../DjangoProjects/folder/project_folder/google.json

Итак, как я могу справиться с этим?

ответ

2

Предполагается, что GOOGLE_APPLICATION_CREDENTIALS имеет имя переменной окружения, указывающее на файл; он не должен иметь путь к файлу. Значение по умолчанию этой переменной - это просто «GOOGLE_APPLICATION_CREDENTIALS». Если вы установили переменную окружения с именем GOOGLE_APPLICATION_CREDENTIALS в путь к файлу, который вы хотите использовать, он должен работать на вас.

+0

Что вы пытаетесь сказать, так как это выглядит как нечувствительный – akostadinov

+2

Что он означает, так это то, что GOOGLE_APPLICATION_CREDENTIALS - это переменная среды, а не переменная Python. Попробуйте os.environ ['GOOGLE_APPLICATION_CREDENTIALS'] = os.path.join (BASE_DIR, 'google.json'). – Adam

3

Это просто, чтобы прояснить ответ Гарретта Джонса. Существуют некоторые тонкие путаницы, которые могут возникнуть здесь:

В приведенном примере кода GOOGLE_APPLICATION_CREDENTIALS является именем переменной python. Его значение должен быть имя переменной окружения, которая указывает на файл:

GOOGLE_APPLICATION_CREDENTIALS = "GOOGLE_APPLICATION_CREDENTIALS" 

В этом примере мы предполагаем, существует переменная среды с именем «GOOGLE_APPLICATION_CREDENTIALS» с его значением является файл путь (что-то вроде «/home/anon/workspace/myProject/google_creds.json»)

Переменные окружения могут быть установлены в среде с использованием средств, специфичных для ОС, или с использованием самого python, который может изменять среду во время работы программы (это то, что комментарий Адама к ответу Гаррета демонстрирует, используя os.environ).

 Смежные вопросы

  • Нет связанных вопросов^_^