본문 바로가기
Error Correction

ipynb file No module named ‘package’ error

by apsdfjoi 2023. 4. 2.
728x90
반응형
더보기

주피터 노트북 파일에서 폴더나 패키지를 import할 때마다 경로 설정 법을 찾기 귀찮아서 적음

.py 파일에서 문제 없이 돌아가는 코드를 .ipynb 파일에서 복사하여 실행하려 하면 다음과 같은 오류를 볼 수 있다.

해당 사진에서 mtcnn_pytorch는 폴더이다. 앞에 ‘.’ 을 붙여보자.
단순한 폴더 구조에서는 ‘.’을 붙이면 해결되겠지만 해당 폴더를 참조하는 코드가 복잡하게 얽혀 있는 경우, .py와 .ipynb 파일을 바꿔가며 실행 할 때 ‘.’ 을 붙이고 지우는 작업은 귀찮다.

해결 방법

sys.path에 root 디렉토리 하위 폴더를 모두 append한다. 필요한 폴더만 append하는 게 아니라 모든 폴더를 추가하므로 효율적인 방법은 아니다.

def ipy_path_append(root=None):
    r = root if root is not None else os.getcwd()
    for path in os.listdir(r):
        if os.path.isdir(path):
            ipy_path_append(path)
            if path not in sys.path:
                sys.path.append(path)
ipy_path_append()

잘 된다.

 

728x90
반응형

댓글