我无法在 Google Colab 中安装我的另一个驱动器

I can't mount my another drive in Google Colab

我试图在 Google Colab 中安装我的驱动器,但是,由于凭证错误,我无法这样做。

我想安装另一个与我在 Google Colab 中使用的驱动器不同的驱动器。

以下是我的命令。

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

以下为问题部分

MessageError                              Traceback (most recent call last)
<ipython-input-1-d5df0069828e> in <module>()
      1 from google.colab import drive
----> 2 drive.mount('/content/drive')

3 frames
/usr/local/lib/python3.7/dist-packages/google/colab/drive.py in mount(mountpoint, 
force_remount, timeout_ms, use_metadata_server)
    111       timeout_ms=timeout_ms,
    112       use_metadata_server=use_metadata_server,
--> 113       ephemeral=ephemeral)
    114 
    115 

/usr/local/lib/python3.7/dist-packages/google/colab/drive.py in _mount(mountpoint, 
force_remount, timeout_ms, use_metadata_server, ephemeral)
    134   if ephemeral:
    135     _message.blocking_request(
--> 136         'request_auth', request={'authType': 'dfs_ephemeral'}, timeout_sec=None)
    137 
    138   mountpoint = _os.path.expanduser(mountpoint)

/usr/local/lib/python3.7/dist-packages/google/colab/_message.py in 
blocking_request(request_type, request, timeout_sec, parent)
    173   request_id = send_request(
    174       request_type, request, parent=parent, expect_reply=True)
--> 175   return read_reply_from_input(request_id, timeout_sec)

/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

昨天我可以安装另一个驱动器来执行相同的方法。

解决方法是什么?

我用 this link 解决了这个问题。以下是正确的代码:

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

代码截图如下:

只需复制并粘贴下面给出的代码:-

#Connect Google Drive
from google.colab import drive
drive._mount('/content/drive')

更新: 从 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

截至目前(2022 年 1 月 26 日),您无法使用 drive.mount() 或 drive._mount() 在 Colab 中安装另一个具有不同 goggle 帐户的驱动器。以前是可以的。

现在,您可以使用 gdrive package instead. Check my detailed answer in