kaggle API로 데이터 받는 법, OSError: Could not find kaggle.json. 해결

kaggle API로 데이터 받는 법, OSError: Could not find kaggle.json. 해결

How to Fix OSError: Could not find kaggle.json

개요

20210714_154147.png

캐글에 있는 데이터는 그 용량이 만만치 않기 때문에 웹브라우저의 다운로드 기능에만 맡기기엔 조금 불안한 감이 있다. 그래서 고용량 데이터를 안정적으로 받을 수 있는 API를 제공하는데, 위 스크린샷에서 제일 상단에 있는 코드가 거기에 해당한다.

터미널에서 pip install kaggle을 입력래 kaggle을 설치하고

kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification

를 입력하면 작업경로에 예시 데이터가 다운로드 된다.

에러

사실 안 될 것이다.

PS D:\> kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification
Traceback (most recent call last):
  File "c:\users\rmsms\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\rmsms\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\rmsms\AppData\Local\Programs\Python\Python39\Scripts\kaggle.exe\__main__.py", line 4, in <module>
  File "c:\users\rmsms\appdata\local\programs\python\python39\lib\site-packages\kaggle\__init__.py", line 23, in <module>
    api.authenticate()
  File "c:\users\rmsms\appdata\local\programs\python\python39\lib\site-packages\kaggle\api\kaggle_api_extended.py", line 164, in authenticate
    raise IOError('Could not find {}. Make sure it\'s located in'
OSError: Could not find kaggle.json. Make sure it's located in C:\Users\rmsms\.kaggle. Or use the environment method.

원인

쉽게 말해 kaggle에 회원가입이 되어있어야 다운로드를 할 수 있는데, 그 회원 정보가 없어서 안 된거라고 보면 된다. 유저 정보가 담긴 kaggle.json 파일은 pip로 설치가 안 되기 때문에 직접 kaggle에서 다운로드 받아서 특정 경로에 위치시키면 된다.

해결

Step 1.

20210714_155000.png

https://www.kaggle.com/유저이름/account 혹은 유저프로필에서 Account 탭을 찾는다.


Step 2. kaggle.json 파일 다운로드

20210714_154804.png

해당 페이지에서 API로 검색하면 위와 같이 API 토큰을 생성하는 버튼을 찾을 수 있다. 클릭하면 kaggle.json 파일을 다운로드 받을 수 있다. 이 가이드에서는 헷갈리지 않도록 기본 다운로드 폴더에 받았다.


Step 3. 특정 경로에 복사

20210714_155642.png

반드시 관리자 권한으로 powershell 혹은 터미널을 실행한다.

20210714_152031.png

위와 같이 kaggle.json이 있는 다운로드 폴더로 이동하고, kaggle.json 파일을 복사하는 커맨드는 다음 두 줄이다.

cd C:\Users\rmsms\Downloads
cp kaggle.json ~/.kaggle/kaggle.json

이때 복사에 권한이 필요할 수 있기 때문에 터미널도 관리자 권한으로 연 것이다.


Step 4. 다운로드 시도

kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification

다시 위의 커맨드를 입력하면 다음과 같이 잘 다운로드가 되는 것을 확인할 수 있다.

20210714_153104.png

사이트에서는 127.45GB이었는데 12.3GB만 다운로드 된 것으로 보이는데, 압축률이 너무 높아 그런 것이니 당황할 필요 없다. 압축을 풀면 원래의 방대한 데이터가 나타난다.

20210714_163108.png

댓글