🦃

kaggle: command not found

2021/12/12に公開約3,700字

はじめに

csvファイルのデータセットをkaggleからダウンロードするのに,kaggleコマンドをubuntuにインストールしました.

その際,kaggle: command not found が生じてしまいましたので忘備録として残しておきます.

なお,少しでもお役に立てれば嬉しい限りです.

設定環境

WSL(Windows Subsystem for Linux)のubuntu18.04上にて行いました.
なお,kaggleにユーザー登録済みとします.

通常通りWSLにkaggleコマンドをインストール

まず普通にWSL上にkaggleコマンドをインストールします.

Github上のKaggle APIにあるREAD.ME通りに進めました.

kaggle: command not found 発生時まで手順を追っていきます.

1. kaggleをpipでインストール

まず以下のこれらのコマンドを入力しました.

pip3 install --user kaggle
python3 -m pip install kaggle

その後 kaggle --version と入力しましたが,kaggle: command not found が発生しました.

失敗です.

2. kaggle.jsonをkaggleからダウンロードし,~/.kaggle/kaggle.jsonへ設置

右上のアイコンをクリックして,kaggleのマイページに行きます.

下の画像にある,API中の"Create New API Token"を押して,kaggle.jsonをダウンロードします.

kaggle_top

その後,WSLのホームディレクトリに.kaggleファイルを作成し,その下にkaggle.jsonを移しました(~/.kaggle/kaggle.jsonとなるようにしました).

そして,以下のコマンドでパーミッションを所有者のみ読み書き可能にしました.

chmod 600 ~/.kaggle/kaggle.json

その後 kaggle --version と入力しましたが,kaggle: command not found が発生しました.

2度目の失敗です.

3. ~/.local/binにパズが通っているか確認

Github上のKaggle APIにあるREAD.MEを見てみますと,以下の文言が書かれていることが分かります.

kaggle_top

"If you run into a kaggle: command not found ~ "の部分に注目.

要約すると,pip uninstall kaggleでkaggleのアンインストールの途中で,~/.local/binにパズが通っているか確認してくださいということです.

なお,実際の画面はこのような感じでした(pipのバージョンについて言っておりますが,WARNINGは気にしないで下さい).

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Found existing installation: kaggle 1.5.12
Uninstalling kaggle-1.5.12:
  Would remove:
    /home/ユーザー名/.local/bin/kaggle
    /home/ユーザー名/.local/lib/python3.8/site-packages/kaggle-1.5.12.dist-info/*
    /home/ユーザー名/.local/lib/python3.8/site-packages/kaggle/*
Proceed (Y/n)? 

Would remove:の下に/home/ユーザー名/.local/bin/kaggleとあるので,一応パズは通っていることが分かります.

もし通っていなければ,以下のコマンドを入力してパズの追加と確認を行ってください.

export PATH=".local/bin/"
echo $PATH

そしてもう一度 1. からインストールをし直すことをお勧めします.

~/.local/binにパズが通っているので,この状態で kaggle --version と入力します.

すると,

kaggle: command not found が発生しました.

3度目の失敗です.

4. シンボリックリンクの作成

Kaggle APIに書かれていることは一通りに行いましたが,解決できなかったので,必死に探しました.

そしてついに以下のサイトにたどり着きました.

https://stackoverflow.com/questions/48370064/pip-install-kaggle-works-fine-but-kg-command-not-found/49398939

該当箇所を引用します.

I located the Kaggle executable in ~/.local/bin/kaggle and solved it creating a symbolic link to /usr/bin

ln -s ~/.local/bin/kaggle /usr/bin/kaggle

lnでファイルのリンクを作成することができます.

特に今回はln -sでシンボリックリンクが作成できます.

ln -s pathA pathBで,pathBにpathAのシンボリックリンクを作成するという意味になります.

上記の通り, /usr/bin/kaggle~/.local/bin/kaggleのシンボリックリンクを作成しなければならないので,以下の通りにコマンドを入力しました.

sudo ln -s ~/.local/bin/kaggle /usr/bin/kaggle

その後 kaggle --version と入力しました.

すると,

$ kaggle --version
Kaggle API 1.5.12

と表示されたので,成功していることが分かります.

Congratulations:tada:

おわりに

ご清聴ありがとうございました.

少しでもお役に立てれば嬉しい限りです.

Discussion

ログインするとコメントできます