anaconda使いがminiconda使いになるまで【jupyterも】


**Cドライブが100GBしかないノートPC使ってるからminiconda3にしたい!
cmdからpython動かしたい!(こだわり)
あとjupyterも使う！**

という私にとって、全部のってる導入サイトがなかなか見つかりませんでした。

無いなら作ろうの精神で導入についての備忘録を残します。

#環境

windows 10 home
64ビットOS

#minicondaのインストール

minicondaのサイト↓

```
https://docs.conda.io/en/latest/miniconda.html
```

exeファイルをDLして案内に従ってインストールします。

インストールが終わると
anaconda powershell prompt
anaconda pronpt
は既に動くようになっている。
試しにpythonと打って起動する

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/13a952ad-8eac-54a4-1fb1-17e4872aebd8.png)

問題なく動きました。
この状態で「pip install」も「conda install」も使えるので、
pythonが使える状態になりました。

#とりあえず仮想環境を作ってみます。
まず現在の環境の確認

```
conda info -e と入力

#conda environments
#
base            *C:\users\miniconda3
```
次に仮想環境の作成。
今回は仮想環境を機械学習用としてMLと名付けます。
ついでにpythonのバージョンを3.6にしたいと仮定します。

```
conda create -n ML python=3.6
```

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/8b7a6a32-b9c9-d207-8082-d10af2650b53.png)

y/nを聞かれるのでyを入力して進む。
インストールが終わったら環境を確認。

```
conda info -e と入力

#conda environments
#
base            *C:\users\miniconda3
ML              *C:\users\miniconda3\enves\ML
```
MLという名前の仮想環境がminicondaの中のenvesに展開されました。
pythonは3.6.8でインストールされています。
anaconda promptの画面から、

```
activate ML
```
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b9316017-7844-3969-9877-c5e53f076e92.png)
(base)が(ML)に切り替わったことを確認できました。
※PSでの仮想環境切り替えは別の方法のようです。

```
deactivate
```
これで仮想環境(ML)から(base)にもどりました。
conda deactivateでは(base)すら消え、ただのcmd画面に戻ります。
そんなときはconda activateで(base)に戻ります。

#コマンドプロンプトでpython(こだわり)
cmdでもpythonが使えるようにpathを通します。

コントロールパネルの環境変数の編集から、
pathを選択、
編集→新規→参照→minicondaの中のscriptフォルダを選択
編集→新規→参照→minicondaのフォルダ自体を選択
二つのフォルダがpathの中に追加できました。
この作業を行ってない状態でコマンドプロンプトからpythonを起動すると

```
"python"は内部コマンドまたは外部コマンド・・・・認識されていません
```
というエラーが出ます。

追加した後ならpythonが動くと思いますが、通常のcmd画面では(base)がついていないので、

```
conda activate
```
を行ってからpythonを動かします。

ですが、cmd画面からconda activateを実行すると、「conda.batが読み込めない」と言われて、初回では動かない状態です。
なので

```
conda init
```

を実行し、一度プロンプトの画面を閉じて再度起動
それからconda activateを打ち込みます。

これで(base)のついた画面からpythonを起動できるようになりました。

#jupyter notebookのインストール
anacondaでは何気なく使っていたjupyterも一から入れる必要があります。
(base)のついた画面から、

```
pip install jupyter notebook
```

を実行します。
installが終わったあと、画面から
jupyter notebookを入力するとブラウザが開きjupyterの画面が出てきます。
ですがこのままだとpythonとつながっていません。
pythonとつなぐためにも、選択できるカーネルを入れてあげる必要があります。

カーネルを追加しないと動かないので
**(別のPCでは追加しなくとも動きました。設定ファイルが残っていたのか?カーネルエラーが出たら以下を行ってみてください)**

```
conda install notebook ipykernel
ipython kernel install --user --display-name base
```

これでjupyter notebookの中から baseというカーネルが選択できるようになっていると思います。
ついでにMLもjupyter上で選択できるようにします。

(base)の状態からactivate MLで (ML)に入る
MLの中にもipykernelをインストールします。

```
conda install notebook ipykernel
ipython kernel install --user --name ML --display-name ML
```

実際にjupyter notebookに移ってカーネルを選択し、コードの中でバージョンを確認してみます。

kernel baseを選択
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1878c962-5bd4-ebdd-a132-94ec82e20de1.png)

jupyter notebook上のkernelタブの中のchange kernelで切り替えた後、上記のスクリプトを動かします。

kernel MLを選択
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/451a751d-bbe7-7388-e314-6786ee4f2a51.png)

これでバージョンの違うスクリプトをjupyter上で動かせるようになりました。

#最後に
anacondaは重いけど環境の構築が楽。
でもminicondaを使ってみると、いろんなパッケージがどこにインストールされるのかなども意識し始めたので、
仕組みを理解するという意味では良い経験になりました。