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


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

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

  • 2016년 02월 16일에 작성됨

조회수 189


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 해주세요

  • 2016년 02월 16일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close