Miniconda Install 備忘録

# 概要
minicondaのインストール手順と仮想環境の作成手順を備忘録として残す。
- 実施期間: 2020年2月
- 環境：Ubuntu18.04LTS
- Python2.7, 3.6.9インストール済み
- OPEN CV 3.4.8インストール済み

## Minicondaのインストール
[オフィシャルサイト](https://docs.conda.io/en/latest/miniconda.html#linux-installers)から、Python3.7の最新インストール用shファイル(Miniconda3-latest-Linux-x86_64.sh)をダウンロードする。
Downloadsフォルダでbash実行しインストール

```terminal
$ cd Downloads
$ bash Miniconda3-latest-Linux-x86_64.sh
```
インストール中、conda initを実行するか聞かれるので、NOを選択する。
インストール後、HOME直下にMiniconda3フォルダができる。
下記の２行をbashrcに追記する。追記し、source ~/.bashrcすればcondaをコマンドとして認識する。逆にしなければcondaはunknownなコマンドとエラーが表示される（こともある）。

```terminal
export PATH=~/miniconda3/bin:$PATH
source ~/miniconda3/etc/profile.d/conda.sh
```

インストール中、conda initを実行するか聞かれたときにYesを選択すると上記のbashrcが自動で編集される。ただし、ターミナルを開くたびにcondaのbaseがactivate状態となってしまうため、下記でactivateさせないようにする。

```terminal
$ conda config --set auto_activate_base false
```

conda-forgeレポジトリをデフォルトに設定し、.condarcのトップに追加されたことを確認する。

```terminal
$ conda config --add channels conda-forge
$ conda config --set channel_priority strict
$ sudo vim /home/imo/.condarc
```


Pythonの[オフィシャル](https://www.python.jp/install/anaconda/unix/install.html)も参照

## Minicondaのアップデート、アンインストール
[オフィシャル](https://conda.io/projects/conda/en/latest/user-guide/install/linux.html)の"Updating Anaconda or Miniconda"、"Uninstalling Anaconda or Miniconda"に手順の記載あり。
ちなみにアップデートのコマンドは下記

```terminal
$ conda update conda
```

## 教材のダウンロード

```terminal
$ git clone https://github.com/mbeyeler/opencv-machine-learning.git
```

## 仮想環境作成
勉強用の仮想環境をPython3.X.Y指定で作成し起動する。
Yはなくてもよいし、"python=3.X.Y"を省略すると最新版のPythonになる。
省略すると今の環境ではPython 3.8.1が入った。
古いversionを指定すると、scipyやscikit-learnをインストールするとき、大量のコンフリクトが発生してしまう。

```terminal
$ conda create -n hoge python=3.X.Y
$ source activate hoge
```

Activateした仮想環境"hoge"はcondaの世界
"hoge"内でパケージを必要に応じインストールする。
下記はその例で、下記も参照
https://anaconda.org/conda-forge/opencv
https://anaconda.org/conda-forge/jupyterlab


```terminal
(hoge)$ conda install -c conda-forge numpy
(hoge)$ conda install -c conda-forge scipy
(hoge)$ conda install -c conda-forge scikit-learn
(hoge)$ conda install -c conda-forge matplotlib
(hoge)$ conda install -c conda-forge opencv
```

"-c conda-forge"オプションは前段でchannel_priority strict指定したので省略できるのかも。
pythonで環境確認する。

```python
(hoge)$ python
>>> import sys
>>> print(sys.version)
3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:07:31) 
[GCC 7.3.0]
>>> import cv2
>>> cv2.__version__
'4.2.0'
```

"conda install opencv"でOPEN CV 4.2.0が入った。

MinicondaはAnacondaと違い最小インストールなので、Jupyter notebookもインストールする。
Jupyterの[オフィシャル](JupyterLab is a web-based interactive development environment for Jupyter notebooks, code, and data.)によると、"JupyterLab is a web-based interactive development environment for Jupyter notebooks, code, and data."とあるので、JupyterLabだけを入れればよいはず。

```terminal
(hoge)$ conda install -c conda-forge jupyterlab
(hoge)$ jupyter notebook
```

jupyter notebookがブラウザで起動することを確認し、ターミナル側でCtrl+Cでjupyter notebookを終了させ、仮想環境も終了させる。

```terminal
(hoge)$ conda deactivate
```
ちなみに、事前にOPEN CV 3.4.8は[ココ](https://qiita.com/ShinichiroImoto/items/4a220882d2e4446f740a)でインストール済みだったが、conda仮想環境でimport cv2 (3.4.8)はできなかった(cv2なるnamespaceなしエラー)。
なので、上の手順でOPEN CVを仮想環境内でcondaでインストールした。
condaではない普通のpythonならimport cv2 (3.4.8)はOK。どんな環境でも3.4.8は参照できると思っていたが、原因は不明。

## 仮想環境複製
既存の仮想環境hogeの複製し新しくhoge2を作成する。

```terminal
$ conda create -n hoge2 --clone hoge
```


## 仮想環境削除
現状の仮想環境のリストを表示させる。

```terminal
$ conda info -e
# conda environments:
#
base                  *  /home/imo/miniconda3
hoge                     /home/imo/miniconda3/envs/hoge
```
目的の仮想環境名を削除する。

```terminal
$ conda remove -n hoge --all
```