하위 디렉토리에 있는 모듈을 import할 수 없습니다.

조회수 6465회

디렉토리 구조가 이렇게 있을 때

bin/
    dir.py
    main.py
    usr/
        user.py

main.py에서 dir.py의 class dir과 user.py의 class user를 import하고 있는데

같은 디렉토리 내의 dir모듈은 아무 문제가 없는데 하위 디렉토리에 있는 user 모듈을 import할 수 없습니다.

어떻게 import해야 하위 디렉토리에 있는 모듈을 import할 수 있을까요

소스코드

#main.py

from dir import dir
from user import user

#아래로 코드

에러내용

Traceback (most recent call last): File "main.py", line 2, in from user import user ImportError: cannot import name user

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    같은 디렉토리 안에 있는데도 import를 할 수 없다면, 해당 디렉토리에 빈 파일을 하나 만들어 __init__.py로 이름지으면 됩니다.

    __init__.py는 package 안에 어떤 것들이 import될 수 있느냐를 설정하는 파일입니다. 이걸 비웠을 경우는 import에 제한이 없는 것으로 간주됩니다.

    하위 디렉토리에도 똑같이 __init__.py를 만들어주시고, 하위 디렉토리의 모듈을 import하고 싶으면 점을 찍으면 됩니다.

    그래서

    bin/
        dir.py
        main.py
        usr/
            user.py
    

    이 계층 구조에서 main은

    from dir import dir
    from usr.user import user
    

    로 다른 모듈을 import 해주세요

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)