Anacondaとjupyter notebook備忘録

備忘録：公式から抜粋しただけです。公式を参照するのが一番良いです。
https://docs.conda.io/projects/conda/en/latest/index.html

調べるのが面倒なら、まずはcondaチートシートを参照しましょう。
https://docs.conda.io/projects/conda/en/latest/user-guide/cheatsheet.html

- **2021年1月21日：追記**

@tfukumoriさんの投稿で知ったのですが、[Anaconda パッケージリポジトリが「大規模な」商用利用では有償になっていた](https://qiita.com/tfukumori/items/f8fc2c53077b234384fc)。とあります。

Anacondaの商用利用が有料となりましたが、minicondaとconda-forgeを使えば問題ないようです。redditの[Anaconda is not free for commercial use (anymore) - alternatives ?](https://www.reddit.com/r/Python/comments/iqsk3y/anaconda_is_not_free_for_commercial_use_anymore/g4xuabr/)の方にAnaconda CEOから以下の投稿がありました。

> pwang99 6 days ago (2021年1月15日)
Miniconda + conda forge is not affected by our commercial terms of service change. Please see the FAQ here: https://www.anaconda.com/blog/anaconda-commercial-edition-faq

ですので、気になる方は設定ファイルにconda-forgeをデフォルトにしておきましょう。

## 仮想環境
良く使うオプション

* -f : 既存のパッケージがあっても入れ直す（--force）
* -c : 別のチャンネルも探す。（--channel）
* -n : 名前 （--name）
* -e : 環境（--envs）


### 仮想環境の作成
```
conda create -n myenv -c conda-forge pyhon=3.6.7
```
myenvという仮想環境で[conda-forge](https://conda-forge.org/)経由で`python 3.6.7`をインストールする。
> パッケージをupdateをする場合`conda update numpy`とする。

- 特定のディレクトリに仮想環境を入れる場合

```
conda create -p /path/envname python=3.7
```

### YAMLファイルへ環境を書き出し
```
conda env export --name ENVNAME > envname.yaml
```

### YAMLファイルから環境を作る

```
conda env create --file envname.yaml
```

### Conda configを調べる。
`.condarc`ファイルを作る or 修正するには、`conda config`コマンドを使うか、テキストエディタで`.condarc`を作る。コマンドが簡単。

* channelを追加する

`.condarc`は`conda config --show-sources`で確認できる。設定の詳細は`conda config --show`で見れる。

```sh
$ conda config --add channels conda-forge
$ conda config --show-sources
==> /home/user/.condarc <==
channels:
  - conda-forge
  - defaults
```

* proxyを追加する
デフォルトでは、proxy設定はHTTP_PROXYとHTTPS_PROXY環境変数やシステムからプルされる。設定するときは下記。

```
proxy_servers:
    http: http://user:pass@corp.com:8080
    https: https://user:pass@corp.com:8080
```

詳細は公式：
https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html

### 仮想環境の確認
```
conda info -e

# conda environments:
#
base                  *  /home/ubuntu/anaconda3
myenv                    /home/ubuntu/anaconda3/envs/my_env
```

### パッケージリスト
* すべてのパッケージリスト

```
conda list
```

* 仮想環境内のパッケージリスト

```
conda list --name ENVNAME
```

### 仮想環境を消す
--allオプションを使用することで、すべてのパッケージを削除、すなわち仮想環境を削除できます。

```
conda remove --name myenv --all
```

- 単独のパッケージを消す場合

```
conda remove -n myenv scipy
```

### 仮想環境名を変更
直接はできないので、エイリアスを作成して旧いほうを消します。

```
conda create --name new_name --clone old_name
conda remove --name old_name --all # or its alias: `conda env remove --name old_name`
```

### インストールしたpackages, versionの確認
```
conda list
# packages in environment at /home/ubuntu/anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0            py36he11e457_0  
alabaster                 0.7.10           py36h306e16b_0  
anaconda                  5.1.0                    py36_2  
anaconda-client           1.6.9                    py36_0  
anaconda-navigator        1.7.0                    py36_0  
anaconda-project          0.8.2            py36h44fb852_0  
...

```
> `conda list --revisions`だとパッケージを入れたときの履歴が見れる。

## anacondaとpycharm連携
* File > Settings > Tools > Terminalからshell pathを変更

```
C:\Windows\System32\cmd.exe "/K" C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3
```

## jupyter notebook関連
https://jupyter.readthedocs.io/en/latest/index.html

githubよりjupyter_contrib_nxextensionを入れた後の作業
https://github.com/ipython-contrib/jupyter_contrib_nbextensions

### configの追加
```
jupyter notebook --generate-config
```

### kernel の追加 
jupyter notebookのリストを確認し、作成した仮想環境をnotebookのカーネルへ追加する.

```
jupyter kernelspec list
source activate myenv
ipython kernel install --user --name=myenv --display-name='Environment (myenv)'
```

* anacondaの場合

```
source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
```


### Extension の追加

```
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
```
> Installing jupyter_contrib_nbextensions — jupyter_contrib_nbextensions 0.5.0 documentation



### kernelを消す
```
jupyter kernelspec uninstall unwanted-kernel
```

### kernel名の変更
```
jupyter kernelspec list
>  python2        /home/matthew/.local/share/jupyter/kernels/python2
vim /home/matthew/.local/share/jupyter/kernels/python2/kernel.json
```
などで、名前を変更する。

### jupyter notebookの幅を拡大する
以下をセルに入力する

```
%%HTML
<style>
    div#notebook-container    { width: 95%; }
    div#menubar-container     { width: 65%; }
    div#maintoolbar-container { width: 99%; }
</style>
```