ModuleNotFoundError: нет модуля с именем 'google.appengine'

Я хочу выполнить поиск Google в python3 в Windows. В инструкциях Google говорится, что они поддерживают python3, и для получения подробной информации введите «gcloud topic init», но это не говорит об отсутствии интерпретатора для python2.7. Нужно ли мне устанавливать python2.7, чтобы узнать, как заставить его работать на python3?

На python3 я получаю сообщение об ошибке, как показано ниже. Я установил ключ API и систему пользовательского поиска. Я сделал «pip install google-api-python-client». Я загрузил и запустил GoogleCloudSDKInstaller. Это ошибка:

from googleapiclient.discovery import build
service = build("customsearch", "v1", developerKey="xxxxxx")

Я получил:

[googleapiclient.discovery_cache:WARNING]:file_cache is unavailable when using oauth2client >= 4.0.0 or google-auth (__init__.py:44, time=Apr-07 17:25) Traceback (most recent call last):   File "C:\Users\simon\Anaconda3\lib\site-packages\googleapiclient\discovery_cache\__init__.py", line 36, in autodetect
    from google.appengine.api import memcache ModuleNotFoundError: No module named 'google.appengine'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File "C:\Users\simon\Anaconda3\lib\site-packages\googleapiclient\discovery_cache\file_cache.py", line 33, in <module>
    from oauth2client.contrib.locked_file import LockedFile ModuleNotFoundError: No module named 'oauth2client'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File "C:\Users\simon\Anaconda3\lib\site-packages\googleapiclient\discovery_cache\file_cache.py", line 37, in <module>
    from oauth2client.locked_file import LockedFile ModuleNotFoundError: No module named 'oauth2client'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File "C:\Users\simon\Anaconda3\lib\site-packages\googleapiclient\discovery_cache\__init__.py", line 41, in autodetect
    from . import file_cache   File "C:\Users\simon\Anaconda3\lib\site-packages\googleapiclient\discovery_cache\file_cache.py", line 41, in <module>
    'file_cache is unavailable when using oauth2client >= 4.0.0 or google-auth') ImportError: file_cache is unavailable when using oauth2client >= 4.0.0 or google-auth [googleapiclient.discovery:INFO]:URL being requested: GET https://www.googleapis.com/discovery/v1/apis/customsearch/v1/rest?key=AIzaSyBGDtIo_P8xXbn0ksb15wUhy6sdR_eBDpU



Ответы (2)


Требуется параметр cache_discovery=False при создании службы, например:

service = discovery.build('customsearch', 'v1', credentials=<...>, cache_discovery=False)
person simon    schedule 07.04.2019
comment
Было бы здорово узнать почему? Простое следование руководству quickstart приводит к ошибкам для меня - person Rob; 30.05.2019
comment
@Rob, я выкапывал ту же проблему и кажется, что в системе кеширования битый путь кода. Вы можете увидеть в эти выдает дополнительную информацию, но кажется, что кеш не работает должным образом с oauth2client› 4.0. 0 - person Checo R; 19.06.2019

Хотя это выглядит как каскадная ошибка, если внимательно присмотреться к первой строке, на самом деле это всего лишь предупреждение:

[googleapiclient.discovery_cache:WARNING]:file_cache is unavailable...

Таким образом, если у вас нет доступа к экземпляру, вы можете подавить его следующим образом:

import logging

logging.getLogger('googleapiclient.discovery_cache').setLevel(logging.ERROR)

Вы по-прежнему будете получать какие-либо фактические ошибки.

С благодарностью theacodes, который дал этот ответ здесь

См. Также обсуждение здесь

person scharfmn    schedule 01.06.2020
comment
Примечание: в ответе, на который я ссылаюсь на github, отсутствует «n» в «client». - person scharfmn; 03.09.2020