본문 바로가기

시행착오 노트

pip3? pip? 및 conda 내 pip 정리

pip 로 뭐 설치할 때마다 헷갈리던거 이번 글에서 한 번에 정리해보려고 한다.
먼저, 내 컴퓨터에는 anaconda와, python2, 3 모두 깔려있는 상태다.

1. pip vs pip3

이 링크 pip or pip3 to install packages for Python 3? 를 보면, 알 수 있는데, 정리하면 다음과 같다.

터미널에서 다음과 같이 명령어를 치면 pippip2, pip3 가 실제로 어디에 설치되어있는지 알 수 있다.

$ ls -l `which pip`
-rwxrwxr-x  1 heumsi  staff  234  3 26 18:25 /Users/heumsi/anaconda3/bin/pip
$ ls -l `which pip2`
lrwxr-xr-x  1 heumsi  admin  34  5 13 19:49 /usr/local/bin/pip2 -> ../Cellar/python@2/2.7.16/bin/pip2
$ ls -l `which pip3`
lrwxr-xr-x  1 heumsi  admin  33  3 19 20:49 /usr/local/bin/pip3 -> ../Cellar/python/3.7.2_2/bin/pip3

살펴보면, 그냥 pip라고 할 경우, anaconda3 에서 관리하고 있는 전역 pip에 들어가게 된다.
pip2 의 경우, local 내에 깔린 pip2 (python2 버전) 에 들어가게 된다.
pip3 의 경우, local 내에 깔린 pip3 (python3 버전) 에 들어가게 된다.

2. conda 내에서 pip install

anaconda 로 다음과 같은 가상 환경을 만든 후, 들어갔다고 해보자.

$ conda create -n py36 python=3.6  
...  
$ source activate py36  
$ (py36) ~

이렇게 진입한 콘다 가상환경 안에서 pip 명령어의 차이를 보면,

$ ls -l `which pip`
-rwxrwxr-x  1 heumsi  staff  244  3 26 18:27 /Users/heumsi/anaconda3/envs/py36/bin/pip
$ ls -l `which pip2`
lrwxr-xr-x  1 heumsi  admin  34  5 13 19:49 /usr/local/bin/pip2 -> ../Cellar/python@2/2.7.16/bin/pip2
$ ls -l `which pip3`
lrwxr-xr-x  1 heumsi  admin  33  3 19 20:49 /usr/local/bin/pip3 -> ../Cellar/python/3.7.2_2/bin/pip3

이번엔 pip 입력한 경우, 이전과 다르게 py36 환경의 pip에 깔리는 것을 알 수 있다.
한편, pip2pip3 는 이전과 동일하게 local pip 에 들어가게되는 것을 알 수 있다.

즉, 가상환경 내에서만 패키지를 설치하려면, 그냥 pip install ~ 만 해야한다.
(혹여나 헷갈려서 pip3 install 로 하게되면, 그냥 전역 local에 깔리는 것이다 ;;;)

3. conda install vs pip install

conda install 은 현재 가상환경에만 패키지를 설치한다. pip도 동일하다.

예를 들어,

$ (py36) conda env list  

# conda environments:  
#  
base                      /Users/heumsi/anaconda3  
py36                  *   /Users/heumsi/anaconda3/envs/py36

현재 가상환경은 py36 이고, 이 상태에서 아래와 같이 입력하면,

$ (py36) conda install jupyter

Py36 에만 jupyter 가 설치되고, 그 외 다른 환경(여기서는 base) 에는 설치되지 않는다.

즉, 일반적으로 원하는 패키지를 현재 환경에만 설치하기 위해, conda install 로 하나 pip install 로 하나 상관없다.

(내 경험상 conda 보다 pip 가 더 빠른 경우가 많았는데, pip 로 하면 conda 와 다른 점이 있을까하는 궁금점이 있었다.)

conda 나 pip 나 모두 파이썬 패키지 매니저라, 관리하는 (다운받을 수 있는) 패키지가 당연히 다른데, 이러한 부분은 모두 스킵하고, 당장 필요한 헷갈리는 부분만 정리했다.