pip vs python -m pip
Python 프로젝트나 라이브러리를 설치할 때, 다음 두 가지 방식을 정말 많이 보았으리라 생각된다. 이 두 가지 명령어는 분명 pip을 사용해 패키지를 설치한다. 과연 어떤 차이가 있을까?
pip
pip은 Python용 package installer이다. 이는 PEP 453을 보면, Python 3.4 버전 이후부터는 pip
이 default package installer로 포함되게 되었다.
pip install vs python -m pip install
# pip으로 직접 설치
$ pip install <package>
# pip을 python module로 실행 - Unix/macOS
$ python -m pip install <package>
# pip을 python module로 실행 - Windows
C:> py -m pip install <package>
pip을 직접 실행
만약 위와 같이 터미널에서 pip
명령어를 실행하면, pip
이라는 installer를 곧바로 실행한다. 하지만 Windows의 경우, pip
이라는 명령어를 식별하기 위해 system PATH의 환경변수에 pip의 경로를 추가해야 한다.
pip을 Python module로 실행
만약 위와 같이 터미널에서 python -m pip
(Windows의 경우, py -m pip
) 명령어를 실행하면, pip
을 Python module로 호출하는 것이다. 이는 여러 Python 버전이 존재하는 경우 효율적인데, 특정한 Python 버전을 명시해줄 수 있기 때문이다.
또한 현재 Python에서 권장하는 방식이기도 한데, 이와 관련해, cpython
PR을 보면 다음과 같이 그 이유를 설명한다.
pip3 vs pip
그렇다면 이번에는 pip3
와 pip
이다.
$ pip install <package>
$ pip3 install <package>
만약 python 2.x.x, python 3.x.x 두 버전이 설치 돼 있다면, 이를 pip
과 pip3
로 구분해줄 수 있다. 하지만 둘 중 하나만 설치 돼 있는 경우, 해당 버전으로 설치된다.
만약 python 3.x.x 버전만 설치가 돼 있다면, pip
은 로컬의 기본 Python Interpreter를 호출하게 된다. 따라서 이땐, pip
과 pip3
는 동일한 동작을 수행하게 된다. 하지만 이 또한 시스템 설정에 따라 다르기 때문에, 안전하게 사용하려면 pip3
를 사용하는 것이 좋다.
로컬에 어떤 pip
버전이 설치 돼 있는지는 다음의 명령어를 통해 확인할 수 있다.
$ pip show pip
Name: pip
Version: 23.1.2
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /Users/seiwonpark/.pyenv/versions/3.9.13/lib/python3.9/site-packages
Requires:
Required-by:
$ pip3 show pip
Name: pip
Version: 23.1.2
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /Users/seiwonpark/.pyenv/versions/3.9.13/lib/python3.9/site-packages
Requires:
Required-by:
나의 경우, python 2.x.x 버전이 설치 돼 있지 않아, 두 가지 모두 동일한 결과(python 3.x.x의 결과)를 보여주었다.
python3 vs python
$ python -m pip install <package>
$ python3 -m pip install <package>
현재 일반적으로 많이 사용되는 Python Interpreter의 버전은 3.x.x
이다. 하지만 그 이전엔 Python 2.x.x
버전이 사용되었는데, 이 두 가지 버전이 모두 로컬에 설치 된 경우, 이를 구분하기 위해 python
과 python3
가 사용된다. 이는 PEP 453에서 다음과 같이 설명한다.