티스토리 뷰
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
- unmounted composable
- Oracle Database 19C 설치
- unplugin-auto-import
- rest api crud
- vue unmounted
- postgresql 수정시간 자동 갱신
- oracle 19c 설치
- postgresql on update current_timestamp
- rest api 단건 다건
- 1종 적성검사 국가건강검진
- rest api 조회 생성 수정 삭제
- unmounted document.addlistener
- express crud
- 외래키 삭제
- vue 타이머 해제
- vue 이벤트 해제
- unmounted setinterval
- Oracle Database 19c install
- 오블완
- 스파르타 코딩클럽
- 강서 운전면허 시험장
- postgresql 트리거
- docker multi stage build
- vue onunmounted
- 티스토리챌린지
- 1종 적성검사 신체검사
- 1종 적성검사 과태료
- docker image 경량화
- 1종 적성검사
- dockerignore
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |