Не найдены модули установки клиента API Google Python для Linux - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь начать работу с google drive API из python на моей локальной машине с Linux. Я хочу иметь возможность перемещать файлы назад и вперед на диск Google с моего локального компьютера. Я только начал изучать Python вчера, и у меня возникли проблемы с инструкциями по быстрому запуску Google. когда я пытаюсь запустить код быстрого запуска на https://developers.google.com/drive/v3/web/quickstart/python с python3, я получаю эту ошибку:

ImportError: No module named 'apiclient.discovery'

, который получается из этих операторов импорта в верхней части файла.

from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

В соответствии с инструкциями я установил то, что мне показалось нужным, с помощью команды

pip install --upgrade google-api-python-client

Но я получаю эту ошибку. Я замечаю, если я закомментирую строку

from apiclient.discovery import build

тогда остальные операторы импорта в порядке, и скрипт начинает выполняться, и браузер всплывает, запрашивая аутентификацию, но затем, очевидно, когда он достигает вызова функции 'build' в скрипте, он прерывается. Что я делаю неправильно?

Я пытался установить папку lib, содержащую модули, в локальный каталог, в котором выполняется мой скрипт, но я думаю, что это важно только в том случае, если вы используете google app engine, которым я являюсь .... не так? Я не думаю, что я прав? Когда я это сделал, я попытался изменить оператор импорта на

from lib.googleapiclient.discovery import build

Я получаю ту же ошибку, но я действительно открыл этот файл в lib / googleapiclient / discovery.py в моем локальном каталоге и в коде

...
def build(serviceName,
      version,
      http=None,
      discoveryServiceUrl=DISCOVERY_URI,
      developerKey=None,
      model=None,
      requestBuilder=HttpRequest,
      credentials=None,
      cache_discovery=True,
      cache=None):
...

Так почему же в мире не работает этот оператор импорта? Я также попытался изменить утверждения с

from apiclient.discovery import build

до

from googleapiclient.discovery import build

и я получаю ту же ошибку, нет модуля с именем googleapiclient

Вчера я установил сторонние модули с pip, и у меня никогда не было проблем. В чем дело? Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 30 апреля 2018
  1. Проверьте версию Python и pip и попробуйте pip freeze, чтобы проверить установленный пакет.

    python --version
    pip --version
    pip freeze
    

    Пожалуйста, проверьте вашу версию на Python, откуда ваш pip (/usr/lib/python2.7 или /usr/lib/python3.6 или другой virtualenv) и есть ли google-api-python-client в выводе pip freeze.

  2. Попробуйте переустановить google-api-python-client.

    sudo pip install --force-reinstall google-api-python-client

  3. apiclient - старое имя, поэтому для импорта лучше использовать googleapiclient.

    from googleapiclient.discovery import module

...