티스토리 뷰
pip install pymongo # flask package 설치
분명히 패키지를 설치했음에도 ModuleNotFoundError가 발생했습니다.
왜 그런지 알기위해 이것저것 알아본 결과를 말씀드리겠습니다.
원인
pip 가 가르키는 python version 문제 였습니다.
pip --version # pip version 확인
python -m pip --version # python 명령어를 통한 pip 실행
python --version # python version
python3.8 --version # python3.8 version확인
이제 감이 오시나요? 'python -m'을 앞에 명시 함으로서 pip의 대상 python version을 명시할 수 있습니다.
응용
그럼 역으로 생각해보죠. 'pip --version' 에서 가르키는 python version으로 프로그램을 실행시키면 정상적으로 동작하지 않을까요? pip는 python3.8을 가르키고 있으니 python3.8로 app.py를 실행하면 설치된 패키지를 사용할 수 있을것으로 기대됩니다.
python3.8 app.py # python3.8 version으로 app.py 실행
역시나 해당 version에서는 설치된 패키지를 참조할 수 있어 정상적으로 실행되네요.
그럼 python version에 따라 package 설치 경로가 다를것으로 예상됩니다. 알아보겠습니다.
설치된 package 위치 확인
pip show pymongo # pymongo 정보 확인
그럼 python -m 으로 설치된 패키지 위치도 보겠습니다. 예상되시죠?
python -m pip show pymongo
역시나 설치 위치도 다릅니다.
결론
pip 뿐만 아니라 다른 모듈을 사용시에도 python -m <module>로 사용하는 것이 파이썬에서도 권장하는 방법입니다.
version문제를 겪지 않기위해서는 해당 명령어로 실행하는것을 습관들이시면 좋을것 같습니다.

참고자료
What's the difference between "pip install" and "python -m pip install"?
I have a local version of Python 3.4.1 and I can run python -m pip install, but I'm unable to find the pip binary to run pip install. What's the difference between these two?
stackoverflow.com
https://towardsdatascience.com/fix-modulenotfounderror-sklearn-99db60ed5d
How To Fix ModuleNotFoundError: No module named ‘sklearn’
Understanding how to properly install and import scikit-learn in Python
towardsdatascience.com
https://stackoverflow.com/questions/29980798/where-does-pip-install-its-packages
Where does pip install its packages?
I activated a virtualenv which has pip installed. I did pip3 install Django==1.8 and Django successfully downloaded. Now, I want to open up the Django folder. Where is the folder located? Normally...
stackoverflow.com
'python' 카테고리의 다른 글
[Python] Jinja, Blueprint를 활용해 웹 페이지 컴포넌트화 하기 (0) | 2022.08.22 |
---|---|
[Python] VS Code에 python 환경 구성하기 (0) | 2022.08.16 |
[Python]명령어 py vs python 차이 (0) | 2022.08.16 |
[Python] 웹크롤링 예제 (0) | 2022.08.14 |
- Total
- Today
- Yesterday
- Oracle Database 19c install
- vue unmounted
- vue watch 대체
- unmounted setinterval
- unmounted document.addlistener
- 1종 적성검사 과태료
- vue watch 위험성
- 스파르타 코딩클럽
- docker multi stage build
- dockerignore
- vue watch 문제점
- docker image 경량화
- unplugin-auto-import
- 티스토리챌린지
- 외래키 삭제
- 1종 적성검사
- 1종 적성검사 신체검사
- 1종 적성검사 국가건강검진
- oracle 19c 설치
- Oracle Database 19C 설치
- vue 이벤트 해제
- vue onunmounted
- 오블완
- vue 타이머 해제
- 스마트피싱보호_캠페인
- 강서 운전면허 시험장
- vue 리팩토링
- rest api 조회 생성 수정 삭제
- unmounted composable
- rest api 단건 다건
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |