作者:惰堂_301 | 来源:互联网 | 2022-12-07 06:42
执行以下行时
!pip install kaggle
!kaggle competitions download -c dogs-vs-cats -p /content/
我收到以下错误消息,
Traceback (most recent call last):
File "/usr/local/bin/kaggle", line 7, in
from kaggle.cli import main
File "/usr/local/lib/python3.6/dist-packages/kaggle/__init__.py", line 23, in
api.authenticate()
File "/usr/local/lib/python3.6/dist-packages/kaggle/api/kaggle_api_extended.py", line 109, in authenticate
self._load_config(config_data)
File "/usr/local/lib/python3.6/dist-packages/kaggle/api/kaggle_api_extended.py", line 151, in _load_config
raise ValueError('Error: Missing %s in configuration.' % item)
ValueError: Error: Missing username in configuration.
我不知道刚发生了什么......同样的线路之前工作得很好.这是我第一次发现这个问题.
1> Edhowler..:
它突然停止在这里工作.显然,kaggle api没有在正确的位置搜索kaggle.json文件.由于我在colab笔记本中使用了kaggle api,我正在导入kaggle.json,如下所示:
from googleapiclient.discovery import build
import io, os
from googleapiclient.http import MediaIoBaseDownload
from google.colab import auth
auth.authenticate_user()
drive_service = build('drive', 'v3')
results = drive_service.files().list(
q="name = 'kaggle.json'", fields="files(id)").execute()
kaggle_api_key = results.get('files', [])
filename = "/content/.kaggle/kaggle.json"
os.makedirs(os.path.dirname(filename), exist_ok=True)
request = drive_service.files().get_media(fileId=kaggle_api_key[0]['id'])
fh = io.FileIO(filename, 'wb')
downloader = MediaIoBaseDownload(fh, request)
dOne= False
while done is False:
status, dOne= downloader.next_chunk()
print("Download %d%%." % int(status.progress() * 100))
os.chmod(filename, 600)
它运作得很好.但现在,kaggle api在这个位置搜索kaggle.json:
~/.kaggle/kaggle.json
所以,我只需将我下载的文件移动/复制到正确的位置:
!mkdir ~/.kaggle
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json
它又开始工作了.
是的,出于历史原因,我们一直在设置`$ HOME =/content`,但最近解除了这个原因.如果你只是在上面的代码片段中使用`filename = os.path.expanduser("〜/ .kaggle/kaggle.json")`,你就不需要做额外的复制(因为我猜你只需要文件在一个地方).
2> Marc Moreaux..:
这个简单的事情在Google Cola上为我完成了。
!echo '{"username":"USERNAME","key":"KEY"}' > ~/.kaggle/kaggle.json
!kaggle datasets download -d mmoreaux/environmental-sound-classification-50
-
编辑,可能已更改为:
!echo '{"username":"USERNAME","key":"KEY"}' > /root/.kaggle/kaggle.json
!kaggle datasets download -d mmoreaux/environmental-sound-classification-50