web-dev-qa-db-fra.com

Erreur lors de l'importation du jeu de données Kaggle sur Colab

Lors de l'exécution des lignes suivantes,

!pip install kaggle
!kaggle competitions download -c dogs-vs-cats -p /content/

J'ai eu les messages d'erreur suivants,

Traceback (most recent call last):
File "/usr/local/bin/kaggle", line 7, in <module>
from kaggle.cli import main
File "/usr/local/lib/python3.6/dist-packages/kaggle/__init__.py", line 23, in <module>
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.

Je ne sais pas ce qui vient de se passer ... les mêmes lignes fonctionnaient bien avant. C'est la première fois que je trouve ce problème.

4
Alan.L

Il a soudainement cessé de fonctionner ici aussi. Apparemment, l'api kaggle ne cherchait pas le fichier kaggle.json au bon endroit… .. Depuis que j'utilisais l'api kaggle dans un cahier de notes colab, j'importais le fichier kaggle.json comme suit:

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)

Cela a bien fonctionné. Mais maintenant, l'api kaggle cherche le fichier kaggle.json à cet endroit:

~/.kaggle/kaggle.json

Donc, je devais juste déplacer/copier le fichier que j'ai téléchargé au bon endroit:

!mkdir ~/.kaggle
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json

Et cela a recommencé à fonctionner.

8
Edhowler

Cette chose simple l'a fait pour moi sur Google Cola.

!echo '{"username":"USERNAME","key":"KEY"}' > ~/.kaggle/kaggle.json
!kaggle datasets download -d mmoreaux/environmental-sound-classification-50
3
Marc Moreaux

Initialement, j'ai eu du mal à copier le fichier .json dans la VM colab. Finalement, pour moi, les choses suivantes ont fonctionné: En utilisant Google colaboratory, vous devez d’abord installer l’API kaggle avec:

!pip install kaggle

Informations complémentaires et instructions ici https://github.com/Kaggle/kaggle-api . Ensuite, le lien vous demande d'activer l'API avec un fichier que vous pouvez télécharger avec votre utilisateur kaggle le kaggle.com -> Mon compte -> créer un nouveau jeton d'API. ce fichier est kaggle.json.

Ensuite, pour télécharger ce fichier kaggle.json dans la colab VM pour l'activation, vous pouvez d'abord le télécharger sur votre lecteur Google (il suffit de le faire glisser sur votre lecteur). Ensuite, entrez la commande suivante dans colab pour importer votre lecteur:

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

une fois l’autorisation terminée, vous pouvez copier le fichier du lecteur sur colab avec:

!cp /content/gdrive/My\ Drive/kaggle.json ~/.kaggle/kaggle.json

Enfin, j'espère que vous pourrez exécuter la commande:

!kaggle competitions download -c <competition-name>

J'espère que ça aide!

1
Ilai Waimann

Vérifiez également les autorisations sur votre fichier kaggle.json. J'ai la même erreur car après avoir lancé une commande différente de kaggle, j'ai eu cet avertissement:

Avertissement: votre clé API Kaggle est lisible par les autres utilisateurs de ce système! Pour résoudre ce problème, vous pouvez exécuter 'chmod 600 /...etc/kaggle.json'

J'ai exécuté ce qu'ils avaient suggéré et j'ai eu la même erreur que vous, jusqu'à ce que je modifie les autorisations comme auparavant.

C’est ma propre machine (l’autre utilisateur est un mentor, j’ai confiance), j’ai donc utilisé chown 666 /.../kaggle.json et c’est résolu, mais soyez prudent et ne donnez que les autorisations qui conviennent en fonction de votre configuration respective.

0
Cobra

On dirait que le répertoire personnel de Colab a récemment changé de /content à /root. L'utilisation de ~ dans les chemins pour faire référence à HOME plutôt qu'à un codage en dur /content résoudra le problème.

J'ai mis à jour le flux de travail étape par étape dans cette réponse pour refléter les modifications. Désolé pour le dérangement!

0
Bob Smith