はじめに
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](https://www.kaggle.com/)からダウンロードし,`~/.kaggle/kaggle.json`へ設置
右上のアイコンをクリックして,kaggleのマイページに行きます.
下の画像にある,API中の"Create New API Token"を押して,`kaggle.json`をダウンロードします.
<img width="700" alt="kaggle_top" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2310260/2540332a-bdec-65ce-9911-2a75ebb2d392.png">
その後,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に書かれていることは一通りに行いましたが,解決できなかったので,必死に探しました.
そしてついに以下のサイトにたどり着きました.
'pip install kaggle' works fine - but 'kg command not found', StackOverflow
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
おわりに
ご清聴ありがとうございました.
少しでもお役に立てれば嬉しい限りです.