webentwicklung-frage-antwort-db.com.de

Fehler beim Importieren von Kaggle-Dataset auf Colab

Bei der Ausführung der folgenden Zeilen

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

Ich habe folgende Fehlermeldungen erhalten,

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.

Ich weiß nicht, was gerade passiert ist ... Dieselben Zeilen funktionierten vorher einwandfrei. Es ist das erste Mal, dass ich dieses Problem gefunden habe.

4
Alan.L

Es hat plötzlich auch hier aufgehört zu arbeiten. Anscheinend hat das kaggle-api die kaggle.json-Datei nicht an der richtigen Stelle durchsucht .. Da ich das kaggle-api in einem Colab-Notizbuch verwendete, importierte ich die kaggle.json-Datei folgendermaßen:

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)

Es hat gut funktioniert. Nun durchsucht das kaggle-API die Datei kaggle.json an dieser Stelle:

~/.kaggle/kaggle.json

Also musste ich nur die heruntergeladene Datei an die richtige Stelle verschieben/kopieren:

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

Und es fing wieder an zu arbeiten.

8
Edhowler

Diese einfache Sache hat es mir auf Google Cola gebracht.

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

Hatte anfänglich Probleme beim Kopieren der .json-Datei in die Colab-VM. Letztendlich funktionierte für mich folgendes: Beim Durcharbeiten von Google-Collaboratory müssen Sie zunächst die Kaggle-API mit installieren:

!pip install kaggle

Weitere Informationen und Anweisungen hier https://github.com/Kaggle/kaggle-api ..__ Als nächstes werden Sie durch den Link aufgefordert, die API mit einer Datei zu aktivieren, die Sie mit Ihrem kaggle-Benutzer unter kaggle herunterladen können .com -> Mein Konto -> Neues API-Token erstellen. Diese Datei ist kaggle.json.

Um diese kaggle.json -Datei zur Aktivierung zum Colab VM hochzuladen, können Sie sie zuerst auf Ihr Google-Laufwerk hochladen (ziehen Sie sie einfach auf Ihr Laufwerk). Geben Sie anschließend den folgenden Befehl in colab ein, um Ihr Laufwerk zu importieren:

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

nachdem die Autorisierung abgeschlossen ist, können Sie die Datei vom Laufwerk nach Colab kopieren.

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

Und schließlich können Sie hoffentlich den Befehl ausführen:

!kaggle competitions download -c <competition-name>

Ich hoffe das hilft!

1
Ilai Waimann

Überprüfen Sie auch die Berechtigungen für Ihre kaggle.json-Datei. Ich habe die gleiche Fehlermeldung erhalten, weil ich nach dem Ausführen eines anderen Befehls "kaggle" diese Warnung erhalten habe:

Warnung: Ihr Kaggle-API-Schlüssel kann von anderen Benutzern dieses Systems gelesen werden! Um dies zu beheben, können Sie 'chmod 600 /...etc/kaggle.json' ausführen.

Ich lief, was sie vorschlugen, und bekam den gleichen Fehler, den Sie gemacht haben, bis ich die Berechtigungen wieder auf die vorherigen Werte geändert habe.

Dies ist meine eigene Maschine (der andere Benutzer ist ein Mentor, dem ich vertraue), also habe ich chown 666 /.../kaggle.json verwendet und das Problem gelöst, aber seien Sie vorsichtig und geben Sie nur Berechtigungen, die auf Ihrem Setup basieren.

0
Cobra

Sieht aus, als hätte sich das Basisverzeichnis in Colab kürzlich von /content in /root geändert. Wenn Sie ~ in Pfaden verwenden, um auf HOME zu verweisen, anstatt /content fest zu codieren, wird dies behoben.

Ich habe den schrittweisen Arbeitsablauf in diese Antwort aktualisiert, um die Änderungen widerzuspiegeln. Entschuldigung für die Probleme!

0
Bob Smith