I had been working on Colab using:
from google.colab import drive
.mount('/content/gdrive')
with no problems, until today.
I don't know why this error was raised:
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly&response_type=code
Enter your authorization code:
··········
---------------------------------------------------------------------------
TIMEOUT Traceback (most recent call last)
<ipython-input-4-d05fe204dd76> in <module>()
1 from google.colab import drive
----> 2 drive.mount('/content/gdrive')
4 frames
/usr/local/lib/python3.6/dist-packages/google/colab/drive.py in mount(mountpoint, force_remount, timeout_ms, use_metadata_server)
223 oauth_prompt,
224 problem_and_stopped,
--> 225 drive_exited,
226 ])
227 if case == 0:
/usr/local/lib/python3.6/dist-packages/pexpect/spawnbase.py in expect(self, pattern, timeout, searchwindowsize, async_, **kw)
342 compiled_pattern_list = self.compile_pattern_list(pattern)
343 return self.expect_list(compiled_pattern_list,
--> 344 timeout, searchwindowsize, async_)
345
346 def expect_list(self, pattern_list, timeout=-1, searchwindowsize=-1,
/usr/local/lib/python3.6/dist-packages/pexpect/spawnbase.py in expect_list(self, pattern_list, timeout, searchwindowsize, async_, **kw)
370 return expect_async(exp, timeout)
371 else:
--> 372 return exp.expect_loop(timeout)
373
374 def expect_exact(self, pattern_list, timeout=-1, searchwindowsize=-1,
/usr/local/lib/python3.6/dist-packages/pexpect/expect.py in expect_loop(self, timeout)
179 return self.eof(e)
180 except TIMEOUT as e:
--> 181 return self.timeout(e)
182 except:
183 self.errored()
/usr/local/lib/python3.6/dist-packages/pexpect/expect.py in timeout(self, err)
142 exc = TIMEOUT(msg)
143 exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
--> 144 raise exc
145
146 def errored(self):
TIMEOUT: <pexpect.popen_spawn.PopenSpawn object at 0x7f58fb7ab4e0>
searcher: searcher_re:
0: re.compile('google.colab.drive MOUNTED')
1: re.compile('root@e7a376888b95-b97a84955c154714b7850ceb4ecf0e8e: ')
2: re.compile('(Go to this URL in a browser: https://.*)$')
3: re.compile('Drive File Stream encountered a problem and has stopped')
4: re.compile('drive EXITED')
<pexpect.popen_spawn.PopenSpawn object at 0x7f58fb7ab4e0>
searcher: searcher_re:
0: re.compile('google.colab.drive MOUNTED')
1: re.compile('root@e7a376888b95-b97a84955c154714b7850ceb4ecf0e8e: ')
2: re.compile('(Go to this URL in a browser: https://.*)$')
3: re.compile('Drive File Stream encountered a problem and has stopped')
4: re.compile('drive EXITED')
As everyone knows, this code opens a new tab where you have to select a Google account, click on the 'Allow' button, and copy a long password to Colab
EDIT:
I tried to do the same in another way with:
#Installing PyDrive
!pip install PyDrive
#Importing modules
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
#Authenticating and creating the PyDrive client
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
#Getting the file
downloaded2 = drive.CreateFile({'id':"1QGtoo1wqCP2yrjl8kFu4kTfjWqh3EOdt"}) # replace the id with id of file you want to access
downloaded2.GetContentFile('estructura_cc_felipe.xlsx')
But it raises this error:
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=32555940559.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&code_challenge=WkM1RS8Flu1_txc3jn4V_FfutgZuRaHSzYbDvs134PM&code_challenge_method=S256&access_type=offline&response_type=code&prompt=select_account
Enter verification code: ··········
---------------------------------------------------------------------------
AuthorizationError Traceback (most recent call last)
<ipython-input-2-bb96e063f8ef> in <module>()
6
7 #Authenticating and creating the PyDrive client
----> 8 auth.authenticate_user()
9 gauth = GoogleAuth()
10 gauth.credentials = GoogleCredentials.get_application_default()
1 frames
/usr/local/lib/python3.6/dist-packages/google/colab/auth.py in authenticate_user(clear_output)
147 context_manager = _output.temporary if clear_output else _noop
148 with context_manager():
--> 149 _gcloud_login()
150 _install_adc()
151 colab_tpu_addr = _os.environ.get('COLAB_TPU_ADDR', '')
/usr/local/lib/python3.6/dist-packages/google/colab/auth.py in _gcloud_login()
97 _os.remove(name)
98 if gcloud_process.returncode:
---> 99 raise _errors.AuthorizationError('Error fetching credentials')
100
101
AuthorizationError: Error fetching credentials
Does anyone know what is wrong? I have been working for a long time importing files located on my Google drive and never had these problems.
Now you can read and write files from and to your onedrive account directly from google colab.
It turns out that if you manually copy the auth code from the auth button instead of clicking the copy button, it works
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With