Почему oauth2client run_flow выдает ошибку Argparse? - PullRequest
0 голосов
/ 11 января 2019

У меня есть программа на python (2.7), которая использует oauth2client для доступа к Google Drive. Я пытаюсь получить исходный файл учетных данных. Я использую это:

from oauth2client.client import flow_from_clientsecrets
from oauth2client.tools import run_flow


    SCOPE = 'https://www.googleapis.com/auth/drive'
    credentials = 'https://www.googleapis.com/auth/drive'
    CLIENT_SECRET_FILE = os.path.join(credential_path, 'client_secret.json'
    flow = flow_from_clientsecrets(CLIENT_SECRET_FILE, scope=SCOPE)
    http = httplib2.Http()
    credentials = run_flow(flow, store, http=http)

Тем не менее, я получаю сообщение об ошибке использования Argparser?

usage: responseratedash2.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}]
responseratedash2.py: error: unrecognized arguments: -r 2341 -t

responseratedash2.py - это имя моей программы, а -r 2341 -t - допустимые аргументы для этой программы. Но эта ошибка происходит в строке run_flow ...

Почему это происходит?

(ETA: объясняя, как я использую oauth2client, обе функции потока взяты из этой библиотеки.)

1 Ответ

0 голосов
/ 11 января 2019

По какой-то причине ответ oauth2client.tools предполагает, что вы запускаете его с аргументами командной строки. Вероятно, для этого есть веская причина для оригинального варианта использования, но для меня это выглядит очень странно.

Решение состоит в том, что run_flow принимает аргумент flags, который можно установить с помощью:

flags=oauth2client.tools.argparser.parse_args(args=[])

какие нули это ...

...