kaggle: command not found
はじめに
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
をダウンロードします.
その後,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を見てみますと,以下の文言が書かれていることが分かります.
"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に書かれていることは一通りに行いましたが,解決できなかったので,必死に探しました.
そしてついに以下のサイトにたどり着きました.
該当箇所を引用します.
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:
おわりに
ご清聴ありがとうございました.
少しでもお役に立てれば嬉しい限りです.