conda install vs pip install

#概要
condaパッケージマネージャとpipパッケージマネージャを共に使用してもその違いを知らずに使用している人がいるので知識を少しだけでも共有したい。

#FAQ
####conda installとpip installを別に実行するべきか？（pip installとconda installを別に実行するべきか？）
→ pythonパッケージはsite-packagesディレクトリを共有しているので、片方だけinstallをしてもいい。

####conda install vs pip install 違いは何ですか？
→ 違いは、パッケージを受けて来るアドレスが違うし、インストールするモジュールとパッケージが異なる場合がある。pipを実行した場合はpythonに対応するパッケージだけをインストールするのに反してcondaを実行した場合は、pythonパッケージのほか依存性が必要な他のモジュールも一緒にインストールされる。
####conda仮想環境でCUDAをosにインストールせずにcondaモジュールだけで使用可能ですか？
→ condaでcudatoolkitなどのモジュールも一緒に提供しておりnvidiaドライバのインストールだけでバージョンの互換性に合わせて便利に使用できる。
####conda仮想環境ではなく、virtualenv環境では、CUDAをosにインストールしますか？
→ conda環境がない場合には、CUDAをosにインストールして、LD_LIBRARY_PATH環境変数に設定が必要だ。

#構成
次の構成もだけ理解すれば90％を知ることが変わらない。

![conda vs pip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/333449/bcacdad0-836c-e2c4-850e-f14ccc74c8d5.png)


#仮想環境生成
実験のために、仮想環境を作成して活性化させてみよう

```bash
C:\Users\Lenovo>conda create -n py37_test python=3.7
C:\Users\Lenovo>conda activate py37_test
(py37_test) C:\Users\Lenovo>
```

#例1) conda install

#####1. conda installコマンドでPillowパッケージをインストール

```bash
(py37_test) conda install -c anaconda pillow

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    jpeg-9d                    |       h2bbff1b_0         283 KB
    ------------------------------------------------------------
                                           Total:         283 KB

The following NEW packages will be INSTALLED:

  freetype           pkgs/main/win-64::freetype-2.10.4-hd328e21_0
  jpeg               pkgs/main/win-64::jpeg-9d-h2bbff1b_0
  libpng             pkgs/main/win-64::libpng-1.6.37-h2a8f88b_0
  libtiff            pkgs/main/win-64::libtiff-4.2.0-hd0e1b90_0
  lz4-c              pkgs/main/win-64::lz4-c-1.9.3-h2bbff1b_1
  olefile            pkgs/main/win-64::olefile-0.46-py37_0
  pillow             pkgs/main/win-64::pillow-8.3.1-py37h4fa10fc_0
  tk                 pkgs/main/win-64::tk-8.6.10-he774522_0
  xz                 pkgs/main/win-64::xz-5.2.5-h62dcd97_0
  zlib               pkgs/main/win-64::zlib-1.2.11-h62dcd97_4
  zstd               pkgs/main/win-64::zstd-1.4.9-h19a0ad4_0
```

#####2. conda listとpip listにPillowパッケージのインストールの確認
site-packagesディレクトリにPillowディレクトリが作成されたことを確認することができる。

```bash
(py37_test) C:\Users\Lenovo>conda list
# packages in environment at D:\anaconda3\envs\py37_test:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.7.5             haa95532_1
certifi                   2021.5.30        py37haa95532_0
freetype                  2.10.4               hd328e21_0
jpeg                      9d                   h2bbff1b_0
libpng                    1.6.37               h2a8f88b_0
libtiff                   4.2.0                hd0e1b90_0
lz4-c                     1.9.3                h2bbff1b_1
olefile                   0.46                     py37_0
openssl                   1.1.1l               h2bbff1b_0
pillow                    8.3.1            py37h4fa10fc_0
pip                       21.0.1           py37haa95532_0
python                    3.7.11               h6244533_0
setuptools                58.0.4           py37haa95532_0
sqlite                    3.36.0               h2bbff1b_0
tk                        8.6.10               he774522_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wheel                     0.37.0             pyhd3eb1b0_1
wincertstore              0.2                      py37_0
xz                        5.2.5                h62dcd97_0
zlib                      1.2.11               h62dcd97_4
zstd                      1.4.9                h19a0ad4_0


(py37_test) C:\Users\Lenovo>pip list
Package      Version
------------ ---------
certifi      2021.5.30
olefile      0.46
Pillow       8.3.1
pip          21.0.1
setuptools   58.0.4
wheel        0.37.0
wincertstore 0.2
```
![화면 캡처 2021-09-25 163343.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/333449/39f850e3-7366-a5c9-6ed2-324e6e63dc9a.png)


#####3. conda uninstallにインストールされたpillowパッケージを削除してみよう

```bash
(py37_test) C:\Users\Lenovo>conda uninstall pillow
```

#####4. conda listとpip listにpillowパッケージの削除を確認

```bash
(py37_test) C:\Users\Lenovo>conda list
# packages in environment at D:\anaconda3\envs\py37_test:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.7.5             haa95532_1
certifi                   2021.5.30        py37haa95532_0
openssl                   1.1.1l               h2bbff1b_0
pip                       21.2.2           py37haa95532_0
python                    3.7.11               h6244533_0
setuptools                58.0.4           py37haa95532_0
sqlite                    3.36.0               h2bbff1b_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wheel                     0.37.0             pyhd3eb1b0_1
wincertstore              0.2                      py37_0

(py37_test) C:\Users\Lenovo>pip list
Package      Version
------------ ---------
certifi      2021.5.30
pip          21.2.2
setuptools   58.0.4
wheel        0.37.0
wincertstore 0.2
```
![화면 캡처 2021-09-25 163750.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/333449/c415741a-dd07-9817-d7c5-d1720aff1451.png)


#例2) pip install

#####1. pip installコマンドでpillowパッケージをインストール

```bash
(py37_test) C:\Users\Lenovo>pip install Pillow
Collecting Pillow
  Downloading Pillow-8.3.2-cp37-cp37m-win_amd64.whl (3.2 MB)
     |████████████████████████████████| 3.2 MB 3.3 MB/s
Installing collected packages: Pillow
Successfully installed Pillow-8.3.2
```

#####2. pip listとconda listにpillowパッケージのインストールの確認
site-packagesディレクトリにPillowディレクトリが作成されたことを確認することができる。

:::note info
この部分でconda installした場合と他の点を気づいしたはずだ。
build、channelを見ると、pypi repositoryに受けてきたことを確認することができる。
:::

```bash
(py37_test) C:\Users\Lenovo>conda list
# packages in environment at D:\anaconda3\envs\py37_test:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.7.5             haa95532_1
certifi                   2021.5.30        py37haa95532_0
openssl                   1.1.1l               h2bbff1b_0
pillow                    8.3.2                    pypi_0    pypi
pip                       21.2.2           py37haa95532_0
python                    3.7.11               h6244533_0
setuptools                58.0.4           py37haa95532_0
sqlite                    3.36.0               h2bbff1b_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wheel                     0.37.0             pyhd3eb1b0_1
wincertstore              0.2                      py37_0

(py37_test) C:\Users\Lenovo>pip list
Package      Version
------------ ---------
certifi      2021.5.30
Pillow       8.3.2
pip          21.2.2
setuptools   58.0.4
wheel        0.37.0
wincertstore 0.2
```
![화면 캡처 2021-09-25 164048.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/333449/374822e2-ef02-3ca7-f933-2054027ca378.png)


#####3. pip uninstallにインストールされたpillowパッケージを削除してみよう

```bash
(py37_test) C:\Users\Lenovo>pip uninstall Pillow
Found existing installation: Pillow 8.3.2
Uninstalling Pillow-8.3.2:
  Would remove:
    d:\anaconda3\envs\py37_test\lib\site-packages\pil\*
    d:\anaconda3\envs\py37_test\lib\site-packages\pillow-8.3.2.dist-info\*
Proceed (Y/n)?
```

#####4. pip listとconda listにpillowパッケージの削除を確認
site-packagesディレクトリからPillowディレクトリが削除された。

```bash
(py37_test) C:\Users\Lenovo>conda list
# packages in environment at D:\anaconda3\envs\py37_test:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.7.5             haa95532_1
certifi                   2021.5.30        py37haa95532_0
openssl                   1.1.1l               h2bbff1b_0
pip                       21.2.2           py37haa95532_0
python                    3.7.11               h6244533_0
setuptools                58.0.4           py37haa95532_0
sqlite                    3.36.0               h2bbff1b_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wheel                     0.37.0             pyhd3eb1b0_1
wincertstore              0.2                      py37_0

(py37_test) C:\Users\Lenovo>pip list
Package      Version
------------ ---------
certifi      2021.5.30
pip          21.2.2
setuptools   58.0.4
wheel        0.37.0
wincertstore 0.2
```
![화면 캡처 2021-09-25 163750.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/333449/4d4e5cf7-3926-09ac-098e-fd9d5c10594f.png)