Как использовать библиотеку Python google.oauth2?

Я пытаюсь просто сделать простой вызов rest для безопасной конечной точки прогнозирования для проекта машинного обучения Google, но он не может найти модуль google.oauth2. Это мой код:

import urllib2
from google.oauth2 import service_account

# Constants
ENDPOINT_URL = 'ml.googleapis.com/v1/projects/{project}/models/{model}:predict?access_token='
SCOPES = ['https://www.googleapis.com/auth/sqlservice.admin']
SERVICE_ACCOUNT_FILE = 'service.json'

credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
access_token=credentials.get_access_token()

opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(ENDPOINT_URL)
request.get_method = lambda: 'POST'
result = opener.open(request).read()
print(str(result))

Когда я запускаю это, я получаю эту ошибку:

Traceback (most recent call last):
  File "wakeUpMLServer.py", line 30, in <module>
    from google.oauth2 import service_account
ImportError: No module named oauth2

Я установил библиотеку google-api-python-client с помощью pip (из инструкций здесь: https://developers.google.com/api-client-library/python/apis/oauth2/v1). Установка сказала, что прошла успешно. Версия Python: 2.7.6 Версия Pip: 1.5.4

Если это как-то конфликтует, вы должны знать, что я также обрабатываю файлы protobuf на том же сервере, поэтому у меня также установлена ​​​​библиотека protobufs. Когда я делаю список пипсов, он показывает обе библиотеки:

google-api-python-client (1.6.7)
protobuf (3.1.0.post1)

Есть ли какой-то особый способ установки модуля? Как проверить, что модуль установлен? Есть ли более простой способ просто сделать простой вызов rest для защищенной конечной точки ml, которая просто использует Rest API и не использует python?


person Alex Egli    schedule 18.05.2018    source источник


Ответы (1)


Модуль google-oauth2 определенно существует, поэтому может быть, он никогда не был установлен.

У вас установлен пакет google-auth? Попробуйте выполнить

pip install --upgrade google-auth

а затем снова запустите свой код.

person bluecereal    schedule 18.05.2018
comment
Это сработало! Интересно, почему этого не было в инструкциях от Google, если это обязательный шаг? - person Alex Egli; 22.05.2018