반응형
파이썬에서 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 패키지가 인스콜 된다.
반응형
'Python' 카테고리의 다른 글
[python] 파이썬에서 전역 변수 사용하기 - global (0) | 2022.04.08 |
---|---|
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. 문제 해결 방법 (0) | 2022.02.27 |
[python] selenium에서 Message: unknown error: session deleted because of page crash 에러 발생 (0) | 2022.02.01 |
[python] replace() argument 2 must be str, not int 에러 해결 (0) | 2022.01.29 |
[python] 파이썬 스크립트 백그라운드 수행 (Windows) (0) | 2022.01.24 |