본문 바로가기

Python

[python] pip와 python 버전이 다를때 pip 설치하기

반응형

 

파이썬에서 pip 를 이용해 requests 모듈을 설치했는데, 정작 파이썬 스크립트를 돌리니 requests 모듈을 찾을 수 없다. 

 

$ pip install requests
Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (2.26.0)
Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests) (2.0.9)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests) (2021.10.8)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests) (1.26.7)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests) (3.3)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 21.3.1; however, version 22.0.2 is available.
You should consider upgrading via the '/usr/bin/python3.7 -m pip install --upgrade pip' command.

 

왜 그런지 찾아보니 python과 pip 버전이 다르다.

 

# 파이썬과 pip 버전이 다르다.
root@vultr:~/test# python --version
Python 2.7.12


root@vultr:~/test# pip --version
pip 21.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

python은 2.7 버전이고 pip는 3.7이다. 즉 pip install을 했을때는 python 3.7을 위한 모듈을 설치되었다.

 

보통 이런 경우는 가상환경을 사용함으로써 의존성 문제를 해결할 수 있지만,

이미 로컬에 설치된 이상 로컬에서 해결해보기로 한다. 

 

 

해결 (-m 옵션)

$ python -m pip install requests
Collecting requests
  Downloading https://files.pythonhosted.org/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl (63kB)
    100% |████████████████████████████████| 71kB 1.0MB/s
Collecting certifi>=2017.4.17 (from requests)
  Using cached https://files.pythonhosted.org/packages/37/45/946c02767aabb873146011e665728b680884cd8fe70dde973c640e45b775/certifi-2021.10.8-py2.py3-none-any.whl

 

python에서 -m 옵션을 사용하여 pip install을 하게 되면 python에 맞는 pip 패키지들이 인스톨 된다.

 

결론

로컬에 설치된 python과 pip의 버전이 다를 수 있다. 보통 이러한 의존성 문제로 가상환경을 사용하는 것을 추천하지만 굳이 로컬에 설치해야 하는 경우 python에 -m 옵션을 줘서 pip install을 수행하면 해당 파이썬에 맞는 pip 패키지가 인스콜 된다.

 

 

 

반응형