Argumentos no reconocidos utilizando oauth2 y las API de Google

Estoy usando los servicios de la API de Google en algunos scripts y tengo algunos problemas. Este error es algo extraño, pero aquí vamos. Tengo un script que enumera mis archivos de Google Drive.

from apiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'],f['id'])

Funciona perfectamente, descargo elclient_secret.json desde la API de Google y guardarlo en la misma carpeta, luego comienzo el script para verificar que todo esté bien.

Luego empiezo a editar mi archivo para cambiar la forma en que lo ejecuto y no leer un archivo, en su lugar, llamar al script y enviar elIdentificación del cliente yclient_secret cadenas para el script, y la versión final es esta:

import sys
from apiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

# ID and SECRET arguments
client_id = sys.argv[1]
client_secret = sys.argv[2]

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'

def listFiles(drive):
    """Receive the service and list the files"""
    files = drive.files().list().execute().get('files', [])
    for f in files:
        print(f['name'], f['mimeType'],f['id'])

def main():
    store = file.Storage('storage.json')
    creds = store.get()
    if not creds or creds.invalid:
        flow = client.OAuth2WebServerFlow(client_id, client_secret, SCOPES)
        creds = tools.run_flow(flow, store, tools.argparser.parse_args())
    DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
    listFiles(DRIVE)


if __name__ == "__main__":
    main()

La primera vez que inicio esta nueva versión del script funciona, porque el script en la versión anterior ha creado elstorage.json archivo. Luego muevo el script de mi nueva versión a otra carpeta o máquina (donde elstorage.json el archivo no existe) para verificar si funciona y luego obtengo esto:

$ python3 drive_list.py asdasdasdsa jijfkljflksdjflksdj

/usr/local/lib/python3.4/dist-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
  warnings.warn(_MISSING_FILE_MESSAGE.format(filename))
usage: drive_list.py [--auth_host_name AUTH_HOST_NAME]
                     [--noauth_local_webserver]
                     [--auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT ...]]]
                     [--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
drive_list.py: error: unrecognized arguments: asdasdasdsa jijfkljflksdjflksdj

La advertencia sobre el archivo storage.json es normal y aparece en ambas versiones de script, es parte de oauth2client.

Esta es la parte curiosa, por qué los argumentos se reconocen cuando elstorage.json existe el archivo (SOLO creado leyendo elclient_secret.json)? si la primera vez que se inicia el script, crea el archivo. Es realmente extraño este error, y solo estoy tratando de encontrar qué está sucediendo exactamente. Si alguien me puede ayudar, estaré muy agradecido.

Respuestas a la pregunta(1)

Su respuesta a la pregunta