у вас есть детали, и да, многие примеры все еще используют его.

ользую сервисы API Google в некоторых скриптах и ​​у меня возникают проблемы. Эта ошибка что-то странное, но здесь мы идем. У меня есть скрипт, который перечисляет мои файлы на Google Диске.

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'])

Работает отлично, скачиваюclient_secret.json из Google API и сохраните его в той же папке, затем я запускаю скрипт, чтобы проверить все в порядке.

Затем я начинаю редактировать свой файл, чтобы изменить способ его выполнения и не читать файл, вместо этого вызвать скрипт и отправитьID клиента а такжеclient_secret Строки к сценарию, и окончательная версия такова:

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()

Когда я запускаю эту новую версию скрипта в первый раз, он работает, потому что скрипт в старой версии создалstorage.json файл. Затем я перемещаю свой скрипт новой версии в другую папку или компьютер (гдеstorage.json файл не существует), чтобы проверить, работает ли он, а затем я получаю это:

$ 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

Предупреждение о файле storage.json является нормальным и появляется в обеих версиях скрипта, является частью oauth2client.

Это часть курьезов, почему аргументы признаются, когдаstorage.json файл существует (ТОЛЬКО создан с чтениемclient_secret.json)? если при первом запуске скрипта создается файл. Действительно странно эта ошибка, и я просто пытаюсь выяснить, что именно происходит. Если кто-то может мне помочь, я буду очень благодарен.

Ответы на вопрос(1)

Ваш ответ на вопрос