【问题标题】:mount google drive in kaggle notebook在 kaggle 笔记本中安装谷歌驱动器
【发布时间】:2023-03-31 03:20:01
【问题描述】:

在 google colab 中,我很容易用这个挂载我的 google 驱动器:

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

然而,在 kaggle 的笔记本中,它给出了这个错误:

KeyError                                  Traceback (most recent call last)
<ipython-input-14-2b128295b616> in <module>
      2 # !pip install google-colab
      3 from google.colab import drive
----> 4 drive.mount('/content/gdrive')
      5 # Set your own project id here
      6 # PROJECT_ID = 'your-google-cloud-project'

/opt/conda/lib/python3.6/site-packages/google/colab/drive.py in mount(mountpoint, force_remount, timeout_ms)
     80     return
     81 
---> 82   env = _env()
     83   home = env.home
     84   root_dir = env.root_dir

/opt/conda/lib/python3.6/site-packages/google/colab/drive.py in _env()
     41   home = _os.environ['HOME']
     42   root_dir = _os.path.realpath(
---> 43       _os.path.join(_os.environ['CLOUDSDK_CONFIG'], '../..'))
     44   inet_family = 'IPV4_ONLY'
     45   dev = '/dev/fuse'

/opt/conda/lib/python3.6/os.py in __getitem__(self, key)
    667         except KeyError:
    668             # raise KeyError with the original key value
--> 669             raise KeyError(key) from None
    670         return self.decodevalue(value)
    671 

KeyError: 'CLOUDSDK_CONFIG'

这是我在 kaggle notebook 中的设置(也测试了this,没有用):

!pip install google-colab # I don't know if this is the correct package
from google.colab import drive
drive.mount('/content/gdrive')

【问题讨论】:

    标签: python jupyter-notebook google-drive-api google-colaboratory kaggle


    【解决方案1】:

    事实上,google-colab 库并不存在于 Kaggle 内核中。这样,我在 Kaggle Kernel 中使用如下程序来处理这个问题:

    • 首先,从 google drive 中提取您想要的文件的 ID:

      1. 在您的浏览器中,导航到 drive.google.com。

      2. 右键单击文件,然后单击“获取可共享链接”

      3. 然后从 URL 中提取文件的 ID:

    • 接下来,使用conda 安装gdown PyPI 模块:

      ! conda install -y gdown

    • 最后,使用gdown 和预期的 ID 下载文件:

      !gdown --id &lt;put-the-ID&gt;

    例如:

    !gdown --id 1-1wAx7b-USG0eQwIBVwVDUl3K1_1ReCt

    【讨论】:

    • 有没有办法对文件夹做同样的事情?我已经用谷歌驱动器上的文件夹尝试过这种方法,但它不起作用我想知道是否还有另一种方法?
    • @vipulpetkar 你的意思是下载一个子文件夹中的文件还是直接下载一个文件夹?
    • 我想将整个驱动器文件夹直接下载到 kaggle 中。我在 google drive 文件夹中有 10,000 张图片,我想将它们发送到 kaggle,除了发送和整个文件夹之外,我别无选择。
    • @vipulpetkar 另一种方法是创建 CloudFare 工作人员 (workers.cloudflare.com) 以访问您在 Google Drive 上的文件。我相信这会奏效。您需要在 Internet 上挖掘一下以找到有关如何操作的教程。我记得有一个工具可以帮助你配置但在我的历史中找不到它
    【解决方案2】:

    google-colab 不由 Google 维护,像 drive.mount 这样的 Colab 库无法在 Colab 环境之外运行。

    【讨论】:

      【解决方案3】:

      堆栈跟踪表明您缺少一些键。

      • CLOUDSDK_CONFIG

      您可以通过登录 GCP 并搜索凭据来获取此密钥

      要秘密使用这些:将此密钥放入 Kaggle Secrets Add-ons。

      【讨论】:

      • 另一种方法是尝试从 Google Colab 中的驱动器装载脚本中记录密钥和活动以获取该密钥
      猜你喜欢
      • 2019-11-02
      • 2021-08-29
      • 1970-01-01
      • 2018-10-14
      • 2021-04-15
      • 2022-06-28
      • 1970-01-01
      • 2018-07-31
      • 2019-08-04
      相关资源
      最近更新 更多