Language/Python

[Python] 모듈이 있는데 No module named XXX 에러가 뜰때 점검사항

범데이 2021. 11. 23. 01:02

어제 오후에 있었던 일이다.

 

'docker'라는 디렉터리 하위에 있는 'Client' 모듈을 import해야하는 상황이었다.

import Client from docker

 

위와 같은 형식으로 모둘을 import하는 과정에서,

내가 구성한 docker라는 디렉터리 내에 Client모듈이 있었음에도 불구하고,

"No module named XXX" 에러가 발생하게 되었다

 

그 원인은

python의 sys.path경로에 여러 디렉터리가 잡혀있었는데, 그중 다른 경로의 docker 디렉터리를 가져와놓고서는, 'Client'모듈이 없다고 에러를 뱉은 것이다.

 

 

예를들어,

 

[ /tmp/dir_A/docker ]

temp.py

 

[ /tmp/dir_B/docker ]

Client.py

 

위와 같이 두 디렉터리가 있고,

sys.path = ['/tmp/dir_A/', '/tmp/dir_B/'] 

와 같이 sys.path가 잡혀있다면, 첫번째의 경로에서 docker 디렉터리를 발견 후, 모듈이 없다고 에러를 뱉었다.

 

그래서 임시로 dir_A에 있는 사용하지 않는 docker디렉터리를 docker_back으로 move해준뒤,

다시 import하였을때 정상 동작하였음을 확인하였다.

 

 

 

참.. 파이썬은 모듈 때문에 애를 먹은적이 한두번이 아닌듯 하지만,

이러한 경험으로 후에 좀 더 넓은 배경지식을 갖고 디버깅을 할수 있으니 그래도 좋은 공부 되었다고 생각하게 된다.

반응형

'Language > Python' 카테고리의 다른 글

[Python] sys.path에 관해  (0) 2021.11.23
파이썬 FCM연동, 앱으로 푸시알림 보내기  (1) 2021.10.29
파이썬 pip 패키지 다운그레이드  (0) 2021.10.19