conda install vs pip install

category AI 인공지능/AI Environment 2021. 9. 25. 17:14
728x90
반응형

※ 퍼가실때 반드시 출처를 남겨주세요

개요

conda 패키지 관리자와 pip 패키지 관리자를 같이 사용하면서 두 개의 차이점에 대해서 알지 못하고 사용하는 분들이 많이 안타까워 알고있는 지식을 최대한 공유하여 남기고자한다.

 

FAQ

  • conda install 하면 pip install도 별도로 해줘야하나요? (pip install하면 conda install도 별도로 해줘야하나요?)
    → python 패키지는 site-packages 같은 디렉토리를 공유하고 있으므로 한쪽만 install 을 해주면 됩니다.
  • conda vs pip 차이점은 무엇인가요?
    → 차이점은 패키지를 받아오는 주소가 다르고 설치하는 모듈과 패키지가 다를 수 있습니다. pip로 했을 경우 python에 해당하는 패키지만 설치하는것에 반해서 conda로 했을 경우는 python 패키지외에 의존성이 필요한 다른 모듈도 같이 설치해줍니다.
  • conda 가상환경으로 CUDA를 os에 설치없이 conda 모듈만으로 사용가능한가요?
    → conda 에서는 cudatoolkit 등의 모듈도 같이 제공하고 있어 nvidia 드라이버 설치만으로 버전의 호환성에 맞게 편리하게 사용 가능합니다.
  • conda 가상환경이 아닌 virtualenv 환경에서는 CUDA를 os에 설치해야하나요?
    → conda 환경이 아닐 경우에는 CUDA를 os에 설치하고 LD_LIBRARY_PATH 환경변수에 포함시켜주어야 합니다.

 

환경 구성

아래 구성도만 이해하면 차이점에 대해서는 90% 아는 것이 다름없다.

 

가상환경 생성

실험을 위하여 가상환경을 생성하고 활성화 시켜보자

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 패키지를 설치

(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 디렉토리가 생성된 것을 확인할 수 있다.

(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

3. conda uninstall로 설치한 pillow 패키지를 삭제해보자

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

4. conda list 와 pip list 로 pillow 패키지 삭제 확인

site-packages 디렉토리에서 Pillow 디렉토리가 삭제되었다.

(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

예2) pip install 경우

1. pip install 명령어로 pillow 패키지를 설치

(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 디렉토리가 생성된 것을 확인할 수 있다.

이 부분에서 conda로 install 하였을 경우 다른점을 눈치채신 분은 있을 것인다.

build, channel 을 보면 pypi repository에 받아왔다는 것을 확인할 수 있다.

(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

3. pip uninstall로 설치한 pillow 패키지를 삭제해보자

(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 디렉토리가 삭제되었다.

(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

반응형

 

728x90
반응형

'AI 인공지능 > AI Environment' 카테고리의 다른 글

Keras 멀티 GPU 사용 방법  (0) 2022.11.21
PyTorch Tensorboard 시각화  (0) 2021.09.12
torchsummary 모델 정보 요약  (0) 2021.09.12
Tensorflow Object Detection 흐름도  (0) 2019.02.03