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

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

関連記事

PythonでAPI呼び出す時のヘッダー、ボディの指定方法について

  <目次> (1) PythonでAPI呼び出す時のヘッダー、ボディの指定方法について  (1-1) 記事の概要  (1-2) ①「ヘッダー」の指定方法  (1-3) ②「ボディ」の指定方 …

PythonでAzure Blob Storageからcsvを取得する方法について

  <目次> (1) PythonでAzure Blob Storageからcsvを取得する方法について  (1-1) STEP1:Pythonの依存性解決  (1-2) STEP2:Azu …

Azureで「subscription is not registered to use namespace ‘Microsoft.EventGrid’.」エラーが出た時の原因と対処

  <目次> (1) Azureで「subscription is not registered to use namespace ‘Microsoft.EventGrid&#8 …

Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)

  <目次> (1) Azure Cosmos DBの使い方入門(作成~データ登録~SQL発行)  (1-0) Azure Cosmos DBとは?  (1-1) STEP1: Cosmos …

Windowsでバッチ処理を定期的に実行する方法(タスクスケジューラ使用)

  <目次> (1) Windowsでバッチ処理を定期的に実行する方法(タスクスケジューラ使用)  (1-1) タスクスケジューラの設定手順  (1-2) スケジューラの周期を更に細かく(例 …

  • English (United States)
  • 日本語
Top