Я следую Руководству по быстрому запуску Google , чтобы настроить Python для доступа к API Google Диска из записной книжки Jupyter (с конечной целью добавления CSV-файла в определенную папку Google Диска).
После выполнения шагов 1) и 2) я добавляю код быстрого запуска.
quickstart.py
"""
Shows basic usage of the Drive v3 API.
Creates a Drive v3 API service and prints the names and ids of the last 10 files
the user has access to.
"""
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
# Setup the Drive v3 API
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
store = file.Storage('credentials.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)
service = build('drive', 'v3', http=creds.authorize(Http()))
# Call the Drive v3 API
results = service.files().list(
pageSize=10, fields="nextPageToken, files(id, name)").execute()
items = results.get('files', [])
if not items:
print('No files found.')
else:
print('Files:')
for item in items:
print('{0} ({1})'.format(item['name'], item['id']))
При выполнении этого я получаю следующую ошибку:
usage: ipykernel_launcher.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}]
ipykernel_launcher.py: error: unrecognized arguments: -f /Users/miguel/Library/Jupyter/runtime/kernel-dc5eae05-373c-42a9-a2da-86c096ca8330.json
Я погуглил и нашел кое-что здесь (включая этот чат, который кажется похожей проблемой), но я не могу решить проблему.После комментирования частей кода кажется, что строка с ошибкой
creds = tools.run_flow(flow, store)
Есть идеи, как это решить?
РЕДАКТИРОВАТЬ:
Мне удалось найти лучший учебник по Google для подражания.Выполнив все эти шаги, я могу заставить скрипт работать как автономный скрипт на python. Однако он все равно не работает при запуске из записной книжки Jupyter.
Используемый кодпохож на предыдущий.
from __future__ import print_function
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'])
Строка, выдающая ошибку, одинакова:
creds = tools.run_flow(flow, store)
И возвращаемая ошибка одинакова:
usage: ipykernel_launcher.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}]
ipykernel_launcher.py: error: unrecognized arguments: -f /Users/miguel/Library/Jupyter/runtime/kernel-a0ff6ecb-3947-41be-be03-d2d96776fc8e.json
Для ясности: главноеИсходя из этого редактирования, код работает из автономного скрипта, но не при запуске в блокноте Jupyter.