Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Azure Microsoft Python

Azure Machine Learningで「OSError: Could not find kaggle.json」が出た時の原因と対処方法について

投稿日:2023年5月2日 更新日:

 

<目次>

(1) Azure Machine Learningで「OSError: Could not find kaggle.json」が出た時の原因と対処方法について
 (1-1) エラー内容
 (1-2) 原因
 (1-3) 対処
 (1-4) あとがき

(1) Azure Machine Learningで「OSError: Could not find kaggle.json」が出た時の原因と対処方法について

(1-1) エラー内容

NotebookからKaggleのデータセットをダウンロードしようと、Pythonプログラムを起動するジョブを実行したところ、下記のエラーが発生。
(エラーメッセージ)
raise IOError('Could not find {}. Make sure it\'s located in'
OSError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.
(図411)

(1-2) 原因

kaggle.jsonが配置されていないため、認証に失敗した。
※Linuxの場合「~/.kaggle/kaggle.json」に配備
※Windowsの場合「C:\Users\[ユーザー名]\.kaggle\kaggle.json」に配備

(1-3) 対処

●STEP1:kaggleライブラリのインストール
(コマンド)
> pip install kaggle
(図431)
●STEP2:kaggle.jsonの配備
・STEP2-1:配備用のディレクトリ作成
Linuxのため「~/.kaggle/」を作成します。
「~」はホームディレクトリの意味で、今回の例では「/home/azureuser」になります。
(コマンド)
> mkdir /home/azureuser/.kaggle
(図432①)
・STEP2-2:kaggle.jsonファイルの作成
viコマンドでjsonファイルを作って、開きます。
(コマンド)
> vi /home/azureuser/.kaggle/kaggle.json

(図432②)

・STEP2-3:kaggle.jsonの内容を入力
viコマンドでエディタ起動後に「i」を押すと編集モードになります。
↓追記内容
{"username":"[ユーザー名]","key":"[APIキー]"}
(図432③)
・STEP2-4:保存
「ESC」+「:!wq」入力し、「Enter」押下します。
「w」は保存の意味です。
(図432④)
●STEP3:ダウンロードの再試行
今回は犬と猫の画像データを試しにダウンロードします。
「-p」オプションで保存先のパスを指定しています。
(コマンド)
> kaggle competitions download -p ./data/ -c dogs-vs-cats
(図433)
(結果)

Downloading dogs-vs-cats.zip to ../data
 98%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▎  | 792M/812M [00:03<00:00, 268MB/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████| 812M/812M [00:09<00:00, 89.2MB/s]
(図434)zipファイルがダウンロードされた。
→後は、普通にNotebookで解凍や加工などを進める事ができます。

(1-4) あとがき

元々はデータセットのダウンロード自体もNotebook(からPythonモジュールを呼び出し)で実施しようとしていました。
上記のように「kaggle.json」を「/root/.kaggle」に配置しても「/root/.kaggleに配置せよ」とエラーになり、環境変数をプログラム内で指定しようとするもNGで、今回は諦めました・・・
(NGサンプル)
from kaggle.api.kaggle_api_extended import KaggleApi
import zipfile
import csv

os.environ["KAGGLE_USERNAME"] ='xxxx'
os.environ["KAGGLE_KEY"] ='xxxxxxx'

api = KaggleApi()
api.authenticate()

output_path = './data/'

# kaggle.com/c/sentiment-analysis-on-movie-reviewsからダウンロード
# train.tsv.zip / test.tsv.zipの2つのファイルがある
# './'はカレントディレクトリの意味。
api.competition_download_file('dogs-vs-cats',
    'train.zip', path=output_path)
api.competition_download_file('dogs-vs-cats',
    'test1.zip', path=output_path)
しかし、特に動的に行う必要性が無かったため、事前にコマンドラインからダウンロードできればOKとして、特にNotebook上からダウンロードできない件は深追いをやめました。
(図435)
もし詳しい方がいたら、コメントいただけると嬉しいです。

Adsense審査用広告コード


Adsense審査用広告コード


-Azure, Microsoft, Python
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Azure AD(Azure Active Directory)とは?簡単に概要をご紹介

  <目次> (1) Azure AD(Azure Active Directory)とは?簡単に概要をご紹介  (1-1) ひと昔の認証の仕組み(Active Directoryが無い時代 …

Azure Cosmos DBとは?特徴や構造およびデータ形式について

  <目次> (1) Azure Cosmos DBとは?特徴や構造およびデータ形式について  (1-1) Azure Cosmos DBとは?  (1-2) Azure Cosmos DB …

Azure SQLServerが想定より高い?値段を抑えるための工夫についてご紹介

  <目次> (1) Azure SQLServerが想定より高い?値段を抑えるための工夫についてご紹介  (1-1) やりたいこと  (1-2) 概要  (1-3) 設定手順  (1-4) …

Outlookで予定を自動で転送する手順をご紹介

  <目次> (1) Outlookで予定を自動で転送する手順をご紹介  (1-1) 概要/イメージ  (1-2) 設定手順 (1) Outlookで予定を自動で転送する手順をご紹介 本記事 …

Azure Storageをネットワークドライブに割り当てする方法

  <目次> (1) Azure Storageをネットワークドライブに割り当てする方法  (1-1) Azure Storageについて  (1-2) ネットワークドライブへの割り当て手順 …

  • English (United States)
  • 日本語
Top