第一次在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"}
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数据
在kaggle主页的Data区域找到你想要的数据集,形如:
把复制的内容粘贴到Colab上,前面加一个感叹号,形如:
!kaggle datasets download -d tongpython/cat-and-dog
执行即可下载
解压数据集:
!unzip /content/cat-and-dog.zip
但有时,一切并不是那么顺利,比如我,踩了很多的坑
1、总是报错kaggle.json位置不对
在网上找不到相同问题,后来才知道,一开始不知道在哪篇博文的引导下执行了:
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
它会把你构建起来的无法挽救的错误环境清空,这样你就可以重新开始,按照正确的步骤来,可能就能成功,我就是重置后才成功的
3、Warning: Looks like you're using an outdated API Version, please consider updating (server 1.5.12 / client 1.5.4) 403 - Forbidden