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

拈花ヽ惹草 提交于 2019-11-30 16:06:21

问题


I want to mount google drive on google Colab and I am using this command to mount the drive

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

but I am getting this error

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


回答1:


@clarky: the error you got was correct tried to tell you that your usage of drive.mount() is incorrect: the mountpoint argument to drive.mount() must be an empty directory that exists, or the name of a non-existent file/directory in a directory that does exist so that the mountpoint can be created as part of the mount operation. Your usage of a relative path in drive.mount('content/drive/') (i.e. content/drive/) implies that the mount should happen at '/content/content/drive' because the interpreter's default path is /content; note the doubled content path component there, and likely you don't already have a directory named /content/content inside of which a mountpoint named drive could be created. The fix to your notebook code is to instead use drive.mount('/content/drive') - note the leading / making the mountpount path absolute instead of relative.




回答2:


I ran into this error this morning as well. I'm not sure what this commit what meant to fix but it certainly caused the error. A workaround is to copy the code for drive.py into colab, comment out lines 100 and 101 like this:

# 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

...

then replace

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

with

mount('/content/drive/')

using the mount function you copied from drive.py

Hopefully the issue gets fixed quickly enough so we can do away with this workaround.




回答3:


I received the error as well change to drive.mount('/content/drive')




回答4:


Replace drive.mount('/content/drive/') by drive.mount('/content/drive')




回答5:


just remove the '/' following the drive and it works perfectly..

That is from drive.mount('/content/drive/') to drive.mount('/content/drive')




回答6:


Run command to unmount drive first.

!fusermount -u drive

Then try run again,

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



回答7:


If mounting does not work even if absolute path /content/drive was used, then verify that appropriate directories exist,

!mdkir -p /content/drive



来源:https://stackoverflow.com/questions/54230871/google-colab-valueerror-mountpoint-must-be-in-a-directory-that-exists

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!