anacondaにdeeplabcutをインストールしてみた

#deeplabcutをインストールしてみる
[deeplabcut](https://krhb.hatenablog.com/entry/2019/04/16/010439)とは動物の手足座標等のトラッキングを機械学習がやってくれるツールらしい．

友人からこうした便利な存在を聞いたのでインストールしてみた...
してみたかったのだが，えらい量のエラーが発生してかなりてこずってしまった．

一応こうしたエラーへの対処法は後々有用になる可能性もあるので，Qiitaでシェアしつつ備忘録的な意味合いとして記録おく．

##実行環境
自分がインストールしようとしたのは以下の環境

```
Windows10
anaconda
python3.6
```

[deeplabcutをインストールする際，pythonのバージョンが3.6出ないとエラーが出るようです．](https://github.com/AlexEMG/DeepLabCut/issues/173)
最近anacondaを入れた人はpythonのバージョンがデフォルトで3.6以降のものになっていると思うので，python3.6の仮想環境を構築しましょう．

##インストール手順
とりあえず下記サイトを参考にしつつanaconda上で`pip`[^1]でインストールする．


>[deeplabcutのインストールの備忘録](https://krhb.hatenablog.com/entry/2019/04/17/013952)

>[深層学習で動物の身体をトラッキングするdeeplabcutをgoogle colaboratoryで走らせる](https://qiita.com/riichirohira/items/b92723278ba92fb42db9)

まずは，必要なモジュールである`tensorflow`と`wxpython`をインストール．

```
pip install tensorflow
pip install wxpython
```
無事インストール出来たらいよいよ`deeplacut`をインストールする

```
pip install deeplabcut
```



###プロキシのエラー
python以前の問題なのですが，プロキシの設定がうまくいってなかったようです．
`PackagesNotFoundError`として書き脳ようなエラーが出てしまいました．

```
PackagesNotFoundError: The following packages are not available from current channels:

～中略～

ERROR: Operation cancelled by user

ERROR: Could not install packages due to an EnvironmentError: Failed to parse:
 http://user:pass@proxy.jp:port/
```
`.conda`にプロキシの設定を書く～みたいな記事を依然読んだので設定した気になっていたのですが，今回はダメだったようです．

今回は`set HTTP_PROXY`コマンドを使うことで解決しました．
やり方はanacondaのコマンドライン上で書きコマンドを入力．

```
set HTTP_PROXY=http://user:pass@proxy.any.jp:8080
set HTTPS_PROXY=http://user:pass@proxy.any.jp:8080
```

これで`pip install`できるようになりました．

>参考サイト
>[pipでプロキシを突破できなくて詰まった話](https://qiita.com/samunohito/items/40a03e1464899225e698)

###pythonバージョンエラー
deeplabcutをインストールする際python3.7とかだと下記のようなエラーが出るようです．

```
ERROR: Command errored out with exit status 1:
     
～中略～

ValueError: invalid literal for int() with base 10: 'd
  ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
```
原因はsetup.pyでのファイルの読み込みがうまくいかないことで，`python3.6`の環境上でインストールするしかないようです．

>[Issue on installing DeepLabCut on macOS Mojave ](https://github.com/AlexEMG/DeepLabCut/issues/17)


### OSError: [WinError 126]
```
 ERROR: Command errored out with exit status 1:
        File "C:\Users\~\AppData\Local\Temp\pip-install-msdq0827\Shapely\shapely\_buildcfg.py", line 200, in <module>
        lgeos = CDLL("geos_c.dll")
      File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\ctypes\__init__.py", line 348, in __init__
        self._handle = _dlopen(self._name, mode)
    OSError: [WinError 126] 指定されたモジュールが見つかりません。
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
```
deeplabcutのインストールには`geos_c.dll`というdllファイルが必要らしく，エラーが発生．
とりあえず，goesなるものをインストールしてみる．

```
pip install goes
```

>[ShapeelyをインストールするとOSError geos_cが見つかりませんでした](https://kotaeta.com/54563215)

##インストール成功
上記3つくらいのエラーを解決したらdeeplabcutのインストールに成功しました．

編集してて気づいたのですが，時間をかけた割に解決したエラーの数は少なかったですね．

色々調べたり設定を変更していたのですが，本質的には3,4個のエラーしか解決していなかったようです．

エラーの原因を探るって大変ですね．


[^1]: `pip install` より`conda install`を使った方がいいらしい