kaggleを始めるなら入れておこう。kaggleコマンドをインストールするぞ

kaggleやっていこう、ということでdata Downloadしようとしたところ以下のようなコマンドを発見。

```bash
kaggle competitions download -c competition-name
```
なにやら一括ダウンロードできたり便利そうな雰囲気を感じる、とりあえず使えるようにしたい。

# (環境構築)
とりあえずまっさらな状態で試したかったのでvenvで環境を作ってactivate。

```bash
python3 -m venv kaggle-venv

# activate
source kaggle-venv/bin/activate
```
# インストール
基本的には公式の[README](https://github.com/Kaggle/kaggle-api)にそのまま従う。

```bash
pip3 install kaggle
```

# api keyの発行と設定
kaggleのマイページからapi keyを発行する。
https://www.kaggle.com/

[Sign in] -> [My Account] -> [Create New API Token]
とすると、kaggle.jsonがダウンロードされる。
以下のコマンドで~./kaggle以下に移動させ、アクセス権限を変更する。

```bash
mkdir ~/.kaggle
mv ~/Downloads/kaggle.json ~/.kaggle
chmod 600 ~/.kaggle/kaggle.json
```

# 実行
```bash
kaggle competitions list
```
とすると、コンペ一覧が表示されるはずだが、エラー。

```bash

Traceback (most recent call last):
  File "/Users/name/kaggle-venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 574, in _build_master
    ws.require(__requires__)
  File "/Users/name/kaggle-venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/Users/name/kaggle-venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 783, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (urllib3 1.23 (/Users/name/kaggle-venv/lib/python3.6/site-packages), Requirement.parse('urllib3<1.23,>=1.21.1'), {'requests'})
```

`Requirement.parse('urllib3<1.23,>=1.21.1')`
と言われているので、urllib3のバージョンの問題のようである。

```bash
pip3 freeze

certifi==2018.4.16
chardet==3.0.4
idna==2.6
kaggle==1.3.9
python-dateutil==2.7.3
requests==2.18.4
six==1.11.0
tqdm==4.23.4
urllib3==1.23 # oh no
```
1.23はだめなようなので、バージョン指定して再インストール

```bash
pip3 uninstall urllib3
pip3 install urllib3==1.22
```


気を取り直して再実行。

```bash
kaggle competitions list

ref                                             deadline             category            reward  teamCount  userHasEntered  
----------------------------------------------  -------------------  ---------------  ---------  ---------  --------------  
imagenet-object-detection-challenge             2029-12-31 07:00:00  Research         Knowledge          0           False  
imagenet-object-detection-from-video-challenge  2029-12-31 07:00:00  Research         Knowledge          0           False  
imagenet-object-localization-challenge          2029-12-31 07:00:00  Research         Knowledge         15           False  
titanic                                         2020-04-07 00:00:00  Getting Started  Knowledge      11343           False  
house-prices-advanced-regression-techniques     2020-03-01 23:59:00  Getting Started  Knowledge       5456           False  
digit-recognizer                                2020-01-07 00:00:00  Getting Started  Knowledge       2636           False  
competitive-data-science-predict-future-sales   2019-01-01 23:59:00  Playground           Kudos        694           False  
home-credit-default-risk                        2018-08-29 23:59:00  Featured           $70,000       2085           False  
trackml-particle-identification                 2018-08-13 23:59:00  Featured           $25,000        389           False  
...
```

お疲れ様でした。