Google Colab 驱动器安装(带下划线)无法正常工作
Google Colab drive mount (with underscore) is not working
直到昨天(1 月 20 日)我都可以连接到另一个 google 驱动器帐户(使用 drive._mount),但是当我今天尝试此操作时,google colab 向我显示此错误:
from google.colab import drive
drive._mount('/content/drive/')
/usr/local/lib/python3.7/dist-packages/google/colab/drive.py in _mount(mountpoint, force_remount, timeout_ms, use_metadata_server, ephemeral)
294 wrote_to_fifo = True
295 elif case == 5 and not use_metadata_server:
--> 296 raise ValueError('mount failed: invalid oauth code')
297 elif case == 6:
298 # Terminate the DriveFS binary before killing bash.
ValueError: mount failed: invalid oauth code
奇怪的是,错误告诉我“无效的 oauth 代码”,但不让我连接到 google 页面并复制代码!
我设置了 use_metadata_server=True 但是这次出现了新的错误:
from google.colab import drive
drive._mount('/content/drive/', use_metadata_server=True)
ValueError Traceback (most recent call last)
<ipython-input-5-42a561ce7057> in <module>()
1 from google.colab import drive
----> 2 drive._mount('/content/drive/', use_metadata_server=True)
/usr/local/lib/python3.7/dist-packages/google/colab/drive.py in _mount(mountpoint, force_remount, timeout_ms, use_metadata_server, ephemeral)
285 ': timeout during initial read of root folder; for more info: '
286 'https://research.google.com/colaboratory/faq.html#drive-timeout')
--> 287 raise ValueError('mount failed' + extra_reason)
288 elif case == 2:
289 # Not already authorized, so do the authorization dance.
ValueError: mount failed
我也使用了 drive.mount 但显示弹出窗口并要求我输入另一个帐户凭据。我输入的时候出现这个错误:
from google.colab import drive
drive.mount('/content/drive/')
MessageError Traceback (most recent call last)
<ipython-input-1-91874b305a32> in <module>()
1 from google.colab import drive
----> 2 drive.mount('/content/drive/')
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
我认为这是新政策。有解决办法吗?
好的,在解决这个问题之前,我为我的项目做了这个技巧:
我与其他帐户共享了我需要的文件(如数据集)。为此,您应该:
- 转至 google 驱动器(存储文件的位置),然后 right-click 并选择“共享”
- 点击“更改为 link 的任何人”
- 复制link并在新的window中打开
- 在 top-right 一侧,单击您的 google 帐户列表和 select 您需要的
- 在打开的 window 中,在 top-right 旁边单击“添加快捷方式到驱动器”并选择要在其中保存文件的位置
- 现在可以在您选择的帐户中访问您的文件
目前唯一有效的解决方案是
!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
希望正常方式drive.mount
早日修复!
此功能已被删除,您现在只能从笔记本的同一帐户装载 google 驱动器。
https://github.com/googlecolab/colabtools/issues/2562#issuecomment-1017869732
我无法将文件从我的 gdrive 上传或下载到我的 colab(同一帐户,48 小时前工作)。
是否有下划线。
是的,如果您与互联网上的任何人共享文件并使用 !gdown,您可以将文件从您的 gdrive 加载到 colab,但祝您好运,之后将它保存在您的 gdrive 上。
Pydrive 只允许您上传小型儿童文件。
你绝对想不到世界上最大的 IT 公司可能是他幼儿园节目的幕后推手。
遗憾的是他们太大而不能倒闭。
他们没有真正的竞争。
如@user1086010 所述,此功能已被删除。我正在使用“gdrive”包。 运行 以下用于安装 gdrive packhage 的笔记本代码块
import os
com_wget = "sudo wget " +"https://github.com/prasmussen/gdrive/releases/download/2.1.1/gdrive_2.1.1_linux_386.tar.gz"
com_unzip = "sudo tar -xzf gdrive_2.1.1_linux_386.tar.gz"
com_permission = "sudo chmod +x gdrive"
com_install_executor = "sudo install gdrive /usr/local/bin/gdrive"
os.system(com_wget)
os.system(com_unzip)
os.system(com_permission)
os.system(com_install_executor)
然后用“gdrive list”连接你的驱动器:
!sudo gdrive list
您可以通过以下方式下载您的文件:
!gdrive download <gdrive_file_id>
您可以上传:
!gdrive upload <path_to_file>
或目录:
!gdrive upload -r <path_to_dir>
您可以使用以下方法将文件上传到特定的 gdrive 文件夹:
!gdrive upload --parent <gdrive_folder_id> <path_to_file>
要删除身份验证令牌运行,请执行以下命令:
!rm -rf ~/.gdrive/token_*.json
检查此 link 以获取包的参考用例和文档:
gdrive package link
不管你喜不喜欢,我们暂时无法从 colab 挂载另一个驱动器。所以忘记 drive._mount 因为它不起作用 (._mount)
所以唯一可行的解决方案是将文件夹从其他驱动器复制到当前驱动器(您在 colab 中登录的帐户)并使用 drive.mount(而不是drive._mount)
或
只需使用您的帐户登录 colab,该帐户有 folder/directory 您想要安装到您的驱动器
直到昨天(1 月 20 日)我都可以连接到另一个 google 驱动器帐户(使用 drive._mount),但是当我今天尝试此操作时,google colab 向我显示此错误:
from google.colab import drive
drive._mount('/content/drive/')
/usr/local/lib/python3.7/dist-packages/google/colab/drive.py in _mount(mountpoint, force_remount, timeout_ms, use_metadata_server, ephemeral)
294 wrote_to_fifo = True
295 elif case == 5 and not use_metadata_server:
--> 296 raise ValueError('mount failed: invalid oauth code')
297 elif case == 6:
298 # Terminate the DriveFS binary before killing bash.
ValueError: mount failed: invalid oauth code
奇怪的是,错误告诉我“无效的 oauth 代码”,但不让我连接到 google 页面并复制代码!
我设置了 use_metadata_server=True 但是这次出现了新的错误:
from google.colab import drive
drive._mount('/content/drive/', use_metadata_server=True)
ValueError Traceback (most recent call last)
<ipython-input-5-42a561ce7057> in <module>()
1 from google.colab import drive
----> 2 drive._mount('/content/drive/', use_metadata_server=True)
/usr/local/lib/python3.7/dist-packages/google/colab/drive.py in _mount(mountpoint, force_remount, timeout_ms, use_metadata_server, ephemeral)
285 ': timeout during initial read of root folder; for more info: '
286 'https://research.google.com/colaboratory/faq.html#drive-timeout')
--> 287 raise ValueError('mount failed' + extra_reason)
288 elif case == 2:
289 # Not already authorized, so do the authorization dance.
ValueError: mount failed
我也使用了 drive.mount 但显示弹出窗口并要求我输入另一个帐户凭据。我输入的时候出现这个错误:
from google.colab import drive
drive.mount('/content/drive/')
MessageError Traceback (most recent call last)
<ipython-input-1-91874b305a32> in <module>()
1 from google.colab import drive
----> 2 drive.mount('/content/drive/')
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
我认为这是新政策。有解决办法吗?
好的,在解决这个问题之前,我为我的项目做了这个技巧:
我与其他帐户共享了我需要的文件(如数据集)。为此,您应该:
- 转至 google 驱动器(存储文件的位置),然后 right-click 并选择“共享”
- 点击“更改为 link 的任何人”
- 复制link并在新的window中打开
- 在 top-right 一侧,单击您的 google 帐户列表和 select 您需要的
- 在打开的 window 中,在 top-right 旁边单击“添加快捷方式到驱动器”并选择要在其中保存文件的位置
- 现在可以在您选择的帐户中访问您的文件
目前唯一有效的解决方案是
!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
希望正常方式drive.mount
早日修复!
此功能已被删除,您现在只能从笔记本的同一帐户装载 google 驱动器。 https://github.com/googlecolab/colabtools/issues/2562#issuecomment-1017869732
我无法将文件从我的 gdrive 上传或下载到我的 colab(同一帐户,48 小时前工作)。
是否有下划线。
是的,如果您与互联网上的任何人共享文件并使用 !gdown,您可以将文件从您的 gdrive 加载到 colab,但祝您好运,之后将它保存在您的 gdrive 上。
Pydrive 只允许您上传小型儿童文件。
你绝对想不到世界上最大的 IT 公司可能是他幼儿园节目的幕后推手。
遗憾的是他们太大而不能倒闭。 他们没有真正的竞争。
如@user1086010 所述,此功能已被删除。我正在使用“gdrive”包。 运行 以下用于安装 gdrive packhage 的笔记本代码块
import os
com_wget = "sudo wget " +"https://github.com/prasmussen/gdrive/releases/download/2.1.1/gdrive_2.1.1_linux_386.tar.gz"
com_unzip = "sudo tar -xzf gdrive_2.1.1_linux_386.tar.gz"
com_permission = "sudo chmod +x gdrive"
com_install_executor = "sudo install gdrive /usr/local/bin/gdrive"
os.system(com_wget)
os.system(com_unzip)
os.system(com_permission)
os.system(com_install_executor)
然后用“gdrive list”连接你的驱动器:
!sudo gdrive list
您可以通过以下方式下载您的文件:
!gdrive download <gdrive_file_id>
您可以上传:
!gdrive upload <path_to_file>
或目录:
!gdrive upload -r <path_to_dir>
您可以使用以下方法将文件上传到特定的 gdrive 文件夹:
!gdrive upload --parent <gdrive_folder_id> <path_to_file>
要删除身份验证令牌运行,请执行以下命令:
!rm -rf ~/.gdrive/token_*.json
检查此 link 以获取包的参考用例和文档: gdrive package link
不管你喜不喜欢,我们暂时无法从 colab 挂载另一个驱动器。所以忘记 drive._mount 因为它不起作用 (._mount)
所以唯一可行的解决方案是将文件夹从其他驱动器复制到当前驱动器(您在 colab 中登录的帐户)并使用 drive.mount(而不是drive._mount)
或
只需使用您的帐户登录 colab,该帐户有 folder/directory 您想要安装到您的驱动器