Haz todo lo posible por comprender el código correctamente previamente a adaptarlo a tu trabajo si ttienes algo que aportar puedes dejarlo en los comentarios.
Solución:
De repente dejó de funcionar aquí también. Aparentemente, la API de kaggle no estaba buscando el archivo kaggle.json en el lugar correcto. Como estaba usando la API de kaggle dentro de un cuaderno de colab, estaba importando kaggle.json de esta manera:
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)
Funcionó muy bien. Pero ahora, la API de kaggle busca kaggle.json en esta ubicación:
~/.kaggle/kaggle.json
Entonces, solo tuve que mover/copiar el archivo que descargué en el lugar correcto:
!mkdir ~/.kaggle
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json
Y empezó a funcionar de nuevo.
Esta simple cosa lo hizo por mí en Google Cola.
!echo '"username":"USERNAME","key":"KEY"' > ~/.kaggle/kaggle.json
!kaggle datasets download -d mmoreaux/environmental-sound-classification-50
—
editar, podría haber cambiado a:
!echo '"username":"USERNAME","key":"KEY"' > /root/.kaggle/kaggle.json
!kaggle datasets download -d mmoreaux/environmental-sound-classification-50
Inicialmente tuve problemas para copiar el archivo .json en la VM de colab. Eventualmente, para mí funcionó lo siguiente: trabajando a través de la colaboración de Google, primero debe instalar la API de Kaggle con:
!pip install kaggle
Más información e instrucciones aquí https://github.com/Kaggle/kaggle-api. A continuación, el enlace le indica que active la API con un archivo que puede descargar con su usuario de kaggle en kaggle.com -> Mi cuenta -> crear un nuevo token de API. este archivo es kaggle.json.
A continuación, para subir este kaggle.json archivo a la VM de colab para la activación, puede cargarlo primero en su unidad de Google (simplemente arrástrelo a su unidad). Luego ingrese el siguiente comando en colab para importar su unidad:
from google.colab import drive
drive.mount('/content/gdrive')
una vez completada la autorización, puede copiar el archivo de la unidad a colab con:
!cp /content/gdrive/My Drive/kaggle.json ~/.kaggle/kaggle.json
Y finalmente, con suerte podrá ejecutar el comando:
!kaggle competitions download -c
¡Espero que esto ayude!
Si te mola la idea, puedes dejar un escrito acerca de qué le añadirías a esta sección.