iterative / PyDrive2

Google Drive API Python wrapper library. Maintained fork of PyDrive.

Home Page:https://docs.iterative.ai/PyDrive2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A simple way of initializing a pydrive.GoogleDrive object fails when pydrive is replaced by pydrive2

EvanAad opened this issue · comments

The following code works when executed in Google Colab. The code is, in fact, copied from one of the official Google Colab tutorials, the one titled External data: Local Files, Drive, Sheets, and Cloud Storage.

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

However, when pydrive is replaced by pydrive2 in the above listing, and the code is executed in Google Colab, the following error messages result:

---------------------------------------------------------------------------
MessageError                              Traceback (most recent call last)
[<ipython-input-4-3254a9bed9fd>](https://localhost:8080/#) in <cell line: 1>()
----> 1 auth.authenticate_user()
      2 gauth = GoogleAuth()
      3 gauth.credentials = GoogleCredentials.get_application_default()
      4 drive = GoogleDrive(gauth)

2 frames
[/usr/local/lib/python3.10/dist-packages/google/colab/_message.py](https://localhost:8080/#) in read_reply_from_input(message_id, timeout_sec)
    101     ):
    102       if 'error' in reply:
--> 103         raise MessageError(reply['error'])
    104       return reply.get('data', None)
    105 

MessageError: Error: credential propagation was unsuccessful

Why doesn't the code work with pydrive2? Can pydrive2 be made to work with this code? If not, is there a simple alternative?

PTAL here #187

Closing as a duplicate