Google Colab - Google Drive 无法再安装 - 浏览器弹出窗口(桌面版 Google Drive)而不是代码输出中的链接以进行授权

VIC*_*ion 36 authentication mount popup google-drive-api google-colaboratory

从昨天开始,我就遇到了无法再安装 Google 帐户的问题。通常,当我运行它时,我会得到一个用于授权自己的链接。现在,当执行代码时,会打开一个额外的浏览器窗口,我应该在其中授权自己。但如果我再做一遍,那就不行了。您知道为什么此授权链接突然不再显示吗?也许有任何安全设置?我尝试了几个浏览器。

编辑:使用新的授权弹出窗口,如果我从同一个谷歌帐户(如colab)安装谷歌驱动器,它就可以工作。但问题是我的主要 google 驱动器位于 Google Colab 之外的另一个帐户上。通过链接,它之前可以正常工作,没有任何问题......

编辑2:我现在已经解决了这个问题,我已经共享了我的其他帐户所需的文件夹,现在可以通过我的 Colab Google Drive 帐户访问它。但我仍然没能恢复链接。

在使用新弹出窗口执行代码和授权后,我在 Google Colab 上收到此错误消息:

MessageError Traceback(最近一次调用最后一次) in () 1 #Connect Google Drive 2 from google.colab importdrive ----> 3drive.mount('/gdrive')

3 帧 /usr/local/lib/python3.7/dist-packages/google/colab/_message.py 在 read_reply_from_input(message_id, timeout_sec) 104reply.get('colab_msg_id') == message_id): 105 if 'error'回复: --> 106 raise MessageError(reply['error']) 107 returnreply.get('data', None) 108

MessageError:错误:凭证传播失败

我使用这段代码:

#Connect Google Drive
from google.colab import drive
drive.mount('/gdrive')
Run Code Online (Sandbox Code Playgroud)

授权弹出窗口而不是代码输出中的链接

Ali*_*chi 45

更新: 不幸的是,从 2022 年 1 月 20 日起,基于Blue 解决方案类似解决方案的小型解决方案不再起作用(参考)。您可以再次使用我的旧解决方案...

更新 2: 从 2022 年 3 月 30 日起,我的旧解决方案也不起作用了!我找到了另一个现在有效的解决方案(菲利普的解决方案)。

菲利普的解决方案:

该解决方案基于Phillip 的帖子。您可以关注他的帖子以获取更多信息。

按着这些次序:

  1. 运行以下代码:
!sudo add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!sudo apt-get update -qq 2>&1 > /dev/null
!sudo apt -y install -qq google-drive-ocamlfuse 2>&1 > /dev/null
!google-drive-ocamlfuse
Run Code Online (Sandbox Code Playgroud)
  1. 从上一步中,您会收到这样的错误。单击上一条错误消息中的链接并验证您的帐户。

Failure("打开网址时出错:https://accounts.google.com/o/oauth2/auth?client_id=.. ")

  1. 运行以下代码:
!sudo apt-get install -qq w3m # to act as web browser 
!xdg-settings set default-web-browser w3m.desktop # to set default browser
%cd /content
!mkdir drive
%cd drive
!mkdir MyDrive
%cd ..
%cd ..
!google-drive-ocamlfuse /content/drive/MyDrive
Run Code Online (Sandbox Code Playgroud)

您必须收到此消息:

访问令牌已正确检索。

我的旧解决方案

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
%cd /content
!mkdir drive
%cd drive
!mkdir MyDrive
%cd ..
%cd ..
!google-drive-ocamlfuse /content/drive/MyDrive
Run Code Online (Sandbox Code Playgroud)

蓝的解决方案

from google.colab import drive
drive._mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)


Blu*_*lue 15

[编辑] 这不再起作用,因为谷歌已经删除了这个功能。https://github.com/googlecolab/colabtools/issues/2562#issuecomment-1017869732

我也有这个问题。但这解决了问题。(前面有一个下划线mount

from google.colab import drive
drive._mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)