Google Colab-ValueError: Mountpoint must be in a directory that exists

Google Colab-ValueError: Mountpoint must be in a directory that exists

我想在 google Colab 上安装 google 驱动器,我正在使用此命令安装驱动器

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

但是我收到了这个错误

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

 /usr/local/lib/python3.6/dist-packages/google/colab/drive.py in
 mount(mountpoint, force_remount)
      99       raise ValueError('Mountpoint must either be a directory or not exist')
     100     if '/' in mountpoint and not _os.path.exists(_os.path.dirname(mountpoint)):
 --> 101       raise ValueError('Mountpoint must be in a directory that exists')
     102   except:
     103     d.terminate(force=True)

 ValueError: Mountpoint must be in a directory that exists

我今天早上也 运行 遇到了这个错误。我不确定这个 commit what meant to fix but it certainly caused the error. A workaround is to copy the code for drive.py 到 colab 中是什么,注释掉 100101 行,如下所示:

# drive.py

...

  try:
    if _os.path.islink(mountpoint):
      raise ValueError('Mountpoint must not be a symlink')
    if _os.path.isdir(mountpoint) and _os.listdir(mountpoint):
      raise ValueError('Mountpoint must not already contain files')
    if not _os.path.isdir(mountpoint) and _os.path.exists(mountpoint):
      raise ValueError('Mountpoint must either be a directory or not exist')
    #  if '/' in mountpoint and not _os.path.exists(_os.path.dirname(mountpoint)):
    #    raise ValueError('Mountpoint must be in a directory that exists')
  except:
    d.terminate(force=True)
    raise

...

然后替换

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

mount('/content/drive/')

使用您从 drive.py

复制的 mount 函数

希望问题能尽快得到解决,这样我们就可以取消此解决方法。

运行 命令先卸载驱动器。

!fusermount -u drive

然后再试一次运行,

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

@clarky:你得到的错误是正确的试图告诉你你对 drive.mount() 的用法是不正确的:drive.mount() 的挂载点参数必须是一个存在的空目录,或者目录中不存在的 file/directory 的名称确实存在,以便可以创建挂载点作为挂载操作的一部分。您在 drive.mount('content/drive/')(即 content/drive/)中使用相对路径意味着挂载应该发生在 '/content/content/drive',因为解释器的默认路径是 /content;请注意那里的双重 content 路径组件,并且您可能还没有一个名为 /content/content 的目录,可以在其中创建一个名为 drive 的挂载点。笔记本代码的修复是改为使用 drive.mount('/content/drive') - 注意前导 / 使挂载点路径成为绝对路径而不是相对路径。

我也收到错误并更改为drive.mount('/content/drive')

如果即使使用绝对路径 /content/drive 也无法安装,请验证是否存在适当的目录,

!mdkir -p /content/drive

drive.mount('/content/drive/')替换为drive.mount('/content/drive')

只需删除驱动器后面的“/”即可完美运行..

也就是从drive.mount('/content/drive/')到drive.mount('/content/drive')

只需使用:

from google.colab import drive
drive.mount("/content/gdrive")

而不是:

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

在我的例子中,我单击侧面板上的文件夹图标,它会显示上传、刷新和安装驱动器。

  1. 单击安装驱动器,'drive' 文件夹包含 'My Drive' 文件夹出现
  2. 然后运行

    从 google.colab 导入驱动器 drive.mount('drive')

  3. 转到此 URL 在浏览器中将出现 - 我登录我的帐户之一

  4. 输入您的授权码

Drive

只需转到“管理部分”,然后终止您当前的部分,并尝试使用以下命令再次安装:

from google.colab import drive
drive.mount('/content/drive', force_remount=True) 

它在这里工作。

警告:确保在运行下面的命令

之前阅读我的解释

我今天 运行 遇到了这个错误,原因是 Google Colab 出于某种原因保留了上一个会话中的一些文件夹和文件(可能是因为我从笔记本中创建了文件夹) .这些文件和文件夹仍然通过“文件夹”菜单显示,但没有其他 GDrive 文件显示,因为我没有再次进行身份验证。即使 "force_remount=True" 选项也不起作用。

为了解决这个问题,我只是通过 运行 以下命令从 /drive/ 中删除了剩余的文件:

! rm -rf drive/

然后我可以将我的 GDrive 再次挂载到 /drive/ 目录:

from google.colab import drive

drive.mount('/content/drive')

如果您之前没有安装驱动器但有一个路径可以将您的数据保存在驱动器中,则可能会发生这种情况。所以现在,由于 colab 无法访问您的驱动器,它将创建一个与您的路径同名的目录,然后将其保存在 colab 会话中。现在,如果您想现在安装驱动器,它会出现问题,因为引用了相同的路径,但指向两个不同的位置。
解决这个问题的简单方法是:
a.) 从 colab
中的会话中删除文件 或
b.) 在您的 colab 会话中重命名驱动器命名文件夹。
现在尝试再次安装。你应该可以走了。