第一次在colab上面使用kaggle,关于kaggle.json的授权问题折腾了很久,经验如下:

step1. 完成手机绑定

登陆kaggle,主页右上角有个人头像,点击进入,点击“Acount”,完成“Phone Verification”,国家选择‘CN’,手机号要加-,如138-1345-1234

step2. 获取授权码

登陆kaggle,主页右上角有个人头像,点击进入,点击“Acount”,先点击“Expire API Token”,确保将所有过去的Token全部置为过期,然后点击“Create New API Token”,创建一个新的Token,随机就会自动下载一个文件kaggle.json,记事本打开,里面就是你的Token账户名和授权,形如:{"username":"123","key":"dhaskh34223jkhj5g43k5kjh4234jh"}

Colab之kaggle填坑记(非常详实)_数据集

step3. 上 Colab

# 挂载盘符
from google.colab import drive
drive.mount('/content/drive')

# 下载kaggle
!pip install -U -q kaggle

# 授权kaggle
!mkdir -p ~/.kaggle
!echo '{"username":"你的kaggle账户","key":"你的kaggle授权码"}' > ~/.kaggle/kaggle.json
!chmod 600 ~/.kaggle/kaggle.json

# 检查kaggle是否安装成功
!kaggle --version

# 检查是否已授权
!kaggle competitions list

step4. 下载kaggle数据

Colab之kaggle填坑记(非常详实)_数据集_02

在kaggle主页的Data区域找到你想要的数据集,形如:

Colab之kaggle填坑记(非常详实)_json_03

把复制的内容粘贴到Colab上,前面加一个感叹号,形如:

!kaggle datasets download -d tongpython/cat-and-dog

执行即可下载

Colab之kaggle填坑记(非常详实)_Kaggle_04

解压数据集:

!unzip /content/cat-and-dog.zip

但有时,一切并不是那么顺利,比如我,踩了很多的坑

1、总是报错kaggle.json位置不对

Colab之kaggle填坑记(非常详实)_数据集_05

在网上找不到相同问题,后来才知道,一开始不知道在哪篇博文的引导下执行了:

os.environ['KAGGLE_USERNAME'] = '/content/drive'   # 友情提示,千万不要执行这个,因为该目录是不可编辑的,kaggle.json文件永远放不进去,所以就永远找不到

如果不小心执行了以上操作,改一下路径重新执行即可。

其实默认情况下是只要把 kaggle.json 放到 ~/.kaggle/ 文件夹下就行了,不需要执行那么多麻烦的操作,但如果你有其他指定的目录,就把kaggle.json放到对应目录下,但前面step3中的chmod不要忘记

!chmod 600 你的自定义kaggle目录/kaggle.json

2、报错 401 - Unauthorized

重复step2操作,同时更新kaggle.json文件的内容

如果尝试了还是不行,我的朋友教了我一个很有用的办法:

重置Colab

Colab之kaggle填坑记(非常详实)_Colab_06

它会把你构建起来的无法挽救的错误环境清空,这样你就可以重新开始,按照正确的步骤来,可能就能成功,我就是重置后才成功的

3、Warning: Looks like you're using an outdated API Version, please consider updating (server 1.5.12 / client 1.5.4) 403 - Forbidden