파이썬에서 상위 폴더의 파일을 import하는 방법에 대해서 알아보겠습니다.

1. 동일 경로 파일 import

아래와 같이 동일 경로에 main.pynew_module.py가 있다면,

$ tree
.
├── new_module.py
└── main.py

main.py에서는 아래와 같이 동일 경로의 파일을 import할 수 있습니다.

from . import new_module

2. 상위 경로 파일 import

동일 경로가 아닌, 상위 경로의 파일을 import하려면 먼저 상위 경로의 path를 절대 경로에 추가해야 합니다. 그리고 파일을 import할 수 있습니다.

아래와 같이 main.py의 상위 경로에 new_module.py가 있을 때

$ tree
.
├── main
│   └── main.py
└── new_module.py

main.py에서 아래 코드처럼 new_module을 import 할 수 있습니다.

  • sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) : 절대경로 path에 상위 경로 path 추가
  • os.path.dirname(os.path.abspath(os.path.dirname(__file__))) : 작업 디렉토리의 상위 경로 리턴
  • from . import new_module : new_module 파일 import
import sys

sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))

from . import new_module

또는 상위 디렉토리의 절대 경로를 직접 입력하고 import 할 수 있습니다.

import sys

sys.path.append('/path/to/parent_directory')

from parent_directory import my_module