Search code examples
pythonapigoogle-apivirtualenvgoogle-api-client

ModuleNotFoundError: No module named 'googleapiclient'


When I run the code in my venv, I get ModuleNotFoundError: No module named 'googleapiclient. However, when I don't activate my venv or run it globally, the code works perfectly fine. Even though, in my venv i have:

google-api-core==1.22.0
google-api-python-client==1.10.0
google-auth==1.19.2
google-auth-httplib2==0.0.4
google-auth-oauthlib==0.4.1
googleapis-common-protos==1.52.0

Can someone shed some light on what package am I missing from my venv?

Code:

from __future__ import print_function
import datetime
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from datetime import datetime, timedelta
import datetime


SCOPES = ['https://www.googleapis.com/auth/calendar']


def main():
    creds = None
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())

    global service
    service = build('calendar', 'v3', credentials=creds)

if __name__ == '__main__':
    main()

event = {
  'summary': 'Test',
  'location': 'At home',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2020-07-08T12:12:10',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2020-08-08T12:32:47',
    'timeZone': 'America/Los_Angeles',
  }
}
event = service.events().insert(calendarId='primary', body=event).execute()

Solution

  • 1.Install with virtualenv

    virtualenv temp
    source temp/bin/activate
    pip install --upgrade google-api-python-client
    
    1. ignore Six

      sudo pip install --upgrade google-api-python-client --ignore-installed six