Google Colab - Google 驱动器无法再安装 - 浏览器弹出窗口(Google 桌面驱动器)而不是代码输出中的 Link 用于授权

Google Colab - Google Drive can´t be mounted anymore - Browser Popup (Google Drive for Desktop) instead of Link in the code output for authorization

从昨天开始,我就遇到了无法再安装 Google 帐户的问题。通常,当我 运行 它时,我会得到一个 link 来授权自己。现在,当执行代码时,会打开一个额外的浏览器 window,我应该在其中授权自己。但是,如果我重做它,它就不起作用了。你知道为什么这个授权link突然不显示了吗?可能有任何安全设置吗?我试过几个浏览器。

编辑:使用新的授权弹出窗口,如果我从与 colab 相同的 google 帐户安装 google 驱动器,它就可以工作。但问题是我的 google 主驱动器在另一个帐户上,而不是 Google Colab。使用 link 它以前可以正常工作...

编辑 2:我现在已经解决了这个问题,我已经为我的其他帐户共享了所需的文件夹,现在可以通过我的 Colab Google Drive 帐户访问它。但是我还是没能把 link 找回来。

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

MessageError Traceback (most recent call last) in () 1 #Connect Google Drive 2 from google.colab import drive ----> 3 drive.mount('/gdrive')

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

MessageError: Error: credential propagation was unsuccessful

我使用这个代码:

#Connect Google Drive
from google.colab import drive
drive.mount('/gdrive')

Authorization popup instead of the link in the code output

这是 Google Colab Pro 的问题。我有一个专业帐户和一个普通帐户。我的普通帐户按预期工作(使用 link),而我的 Pro 帐户有弹出窗口 window,给我的错误与 OP.

更新: 不幸的是,从 2022 年 1 月 20 日开始,基于 and isn't working anymore (Reference) 的小解决方案。您可以再次使用我的旧解决方案...

更新2: 从 2022 年火星 30 日开始,我的旧解决方案也不起作用了!我找到了另一个正在运行的解决方案(Phillip 的解决方案)。

Phillip 的解决方案:

此解决方案基于 。可以关注他post获取更多信息

按照以下步骤操作:

  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
  1. 从上一步开始,您会收到这样的错误。单击上一条错误消息中的 link 并验证您的帐户。

Failure("Error opening URL: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

您必须收到此消息:

Access token retrieved correctly.

我的旧解决方案

!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

蓝色的解决方案

from google.colab import drive
drive._mount('/content/drive')

[编辑] 这不再有效,因为 google 已删除此功能。 https://github.com/googlecolab/colabtools/issues/2562#issuecomment-1017869732

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

from google.colab import drive
drive._mount('/content/drive')

这个解决方案可能是多余的,因为我不知道你是否解决了你的问题...所以,共享目标 gdrive 和 gdrive 中的两个文件夹你 运行 colabpro,然后添加驱动器快捷方式从目的地到 运行ning gdrive,在 运行ning gdrive 上设置代码以调用添加的快捷方式文件夹名称和 运行 代码“本地”。这样 colabpro 将在 运行ning 帐户上执行代码并将结果存储在您选择的目标驱动器上。这与通过授权码设置目标帐户完全相同,显然不再有效。请注意,创建快捷方式时,可能需要 5-10 分钟才能在 运行ning 帐户中显示。希望能帮助到你。干杯! ^^

您可以挂载与 colab 帐户相同的驱动器帐户,或者您可以使用 drive._mount('/content/drive')

因为新政策。如果您安装的 acc 与 Colab acc 不同,请使用语法使其正常工作。

from google.colab import drive
drive._mount('/content/drive')