300x250
No module named '***'는 사용자가 직접 작성한 모듈이 import 되지 않을 때 발생하는 오류이다. 많은 문제 상황이 있지만 현재 작성 중인 파일에서 디렉토리 설정에 문제가 있을 때 발생하여 이 부분을 기록한다.
문제 상황
사용자 작성 모듈이 현재 작업하고 있는 폴더의 하위 폴더에 담겨 있지 않고, 상위 폴더에 있는 경우에 발생
예를 들어, 디렉토리가 다음과 같이 구성되어 있다고 가정 한다.
└ module
└ user_module
└ scripts
└ main
이런 상황에서 main 파일에 코드를 작성하고 있다고 가정해보자. 이 때 user_module을 import 하려면 아래와 같이 import 한다.
import module.user_module
이 경우 다음과 같은 에러가 발생할 것이다.
No module named 'module'
해결 방법
물론 인위적으로 main 파일을 상위 폴더로 옮겨서 작업할 수 있다. 그러면 특별한 변경점 없이도 쉽게 문제 해결이 가능하지만, 상황에 따라서는 반드시 main 파일을 따로 디렉토리에 관리해야할 필요가 있어서 옮기기 어려운 경우도 있다. 이 때, 간단한 코드로 해결 가능하다. 아래와 같은 코드만 module import 앞쪽에 넣어주면 이렇게 디렉토리가 달라도 사용자 작성 모듈을 불러올 수 있다.
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
'AI > 파이썬' 카테고리의 다른 글
ERROR: Could not find C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe (0) | 2024.12.12 |
---|---|
SystemExit: 2 error args = parser.parse_args() (0) | 2024.10.28 |
Autograd (0) | 2024.03.04 |
VSCode에서 parser로 input을 받는 파이썬 파일 디버깅 방법 (0) | 2024.02.01 |
VScode와 git hub 연동 (0) | 2024.01.02 |
댓글