티스토리 뷰
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문제를 겪지 않기위해서는 해당 명령어로 실행하는것을 습관들이시면 좋을것 같습니다.
참고자료
https://towardsdatascience.com/fix-modulenotfounderror-sklearn-99db60ed5d
https://stackoverflow.com/questions/29980798/where-does-pip-install-its-packages
'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
- 1종 적성검사 과태료
- epel repo
- oracle 19c 설치
- 강서 운전면허 시험장
- 1종 적성검사
- vue 컴포넌트 자동 import
- express crud
- rest api crud
- Oracle Database 19C 설치
- 오블완
- rest api 단건 다건
- postgresql trigger
- 1종 적성검사 국가건강검진
- postgresql 외래키
- 외래키 인덱스 생성 구문 쿼리
- vue 전역 컴포넌트 설정
- postgresql 트리거
- 티스토리챌린지
- epel/x86_64
- 1종 적성검사 신체검사
- 스파르타 코딩클럽
- 외래키 삭제
- rest api 조회 생성 수정 삭제
- 외래키 생성
- Oracle Database 19c install
- unplugin-auto-import
- component auto import
- postgresql 수정시간 자동 갱신
- mariadb 외래키 조회
- postgresql on update current_timestamp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |