0

I'm trying to start working with google drive API from python on my local Linux machine. I want to be able to move files back and forth to Google drive from my local machine. I just started learning Python yesterday and I'm having problems with the Google quickstart instructions. when I try to run the quickstart code at https://developers.google.com/drive/v3/web/quickstart/python with python3 I get this error:

ImportError: No module named 'apiclient.discovery'

which results from these import statements at the top of the file.

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

As per the instructions I installed what I thought i needed with the command

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

But I'm getting this error. I notice if i comment out the line

from apiclient.discovery import build

then the rest of the import statements are ok, and the script starts executing and browser pops up asking for authentication, but then obviously when it reachs the 'build' function call in the script it breaks. What am I doing wrong?

I've tried installing the lib folder containing the modules to the local directory where my script is executing, but I think that's only important if you're using google app engine which I am .... not? I don't think I am right? When i did that i tried changing the import statement to

from lib.googleapiclient.discovery import build

I get the same error, but I've actually opened up that file in lib/googleapiclient/discovery.py in my local directory and in the code is

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

So why in the world wouldn't this import statement work? I've also tried changing the statements from

from apiclient.discovery import build

to

from googleapiclient.discovery import build

and I get the same error, No module named 'googleapiclient'

I've installed 3rd party modules yesterday with pip and I never had any problems. What's going on? Thanks for your help.

Geoff L
  • 765
  • 5
  • 22

1 Answers1

0
  1. Check your python and pip version, and try pip freeze to check the installed package.

    python --version
    pip --version
    pip freeze
    

    Please check your python version, where your pip is from (/usr/lib/python2.7 or /usr/lib/python3.6 or the other virtualenv) and whethergoogle-api-python-client is in the output of pip freeze.

  2. Try to reinstall google-api-python-client.

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

  3. apiclient is the old name, so it is better to use googleapiclient for import.

    from googleapiclient.discovery import module

YoungChoi
  • 324
  • 4
  • 14