Google Colab-ValueError:挂载点必须位于存在的目录中

时间:2019-01-17 07:23:20

标签: python google-colaboratory valueerror

我想在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

10 个答案:

答案 0 :(得分:3)

我今天早上也遇到了这个错误。我不确定commit的含义是什么,但是肯定会导致错误。一种解决方法是将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/')

使用您从mount复制的drive.py函数

希望该问题已得到足够快的解决,因此我们可以消除此变通办法。

答案 1 :(得分:2)

@clarky:您得到的错误是正确的,试图告诉您对drive.mount()的使用不正确:drive.mount()的mountpoint参数必须是存在的空目录,或者是确实存在的目录中不存在的文件/目录,因此可以将挂载点创建为挂载操作的一部分。您在drive.mount('content/drive/')中使用相对路径(即content/drive/)意味着挂载应该在'/content/content/drive'进行,因为解释器的默认路径是/content;请注意,其中的路径路径部分是content的两倍,并且可能还没有一个名为/ content / content的目录,可以在其中创建名为drive的挂载点。解决笔记本代码的方法是改用drive.mount('/content/drive')-注意前导/使mountpount路径成为绝对路径,而不是相对路径。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

只需删除驱动器后面的'/',它就可以正常工作。.

这是从drive.mount('/ content / drive /')到drive.mount('/ content / drive')

答案 4 :(得分:1)

就我而言,我单击侧面板上的文件夹图标,它将显示“上传”,“刷新”和“装入驱动器”。

  1. 单击装载驱动器,即包含“我的驱动器”的“驱动器”文件夹 文件夹出现
  2. 然后运行

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

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

  4. 输入您的授权码

Drive

答案 5 :(得分:0)

运行命令先卸载驱动器。

!fusermount -u drive

然后尝试再次运行,

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

答案 6 :(得分:0)

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

!mdkir -p /content/drive

答案 7 :(得分:0)

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

答案 8 :(得分:0)

只需使用:

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

代替:

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

答案 9 :(得分:0)

只需转到“管理部分”,然后终止当前部分,然后尝试再次安装:

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

它在这里工作。