728x90
Python 프로젝트가 커지면서 파일이 여러 폴더로 나뉘면, 다른 폴더에 있는 함수를 import해야 하는 일이 자주 발생합니다. 그러나 import 문법은 폴더 구조에 따라 다소 헷갈릴 수 있습니다.
본 글에서는 Python에서 하위 폴더, 상위 폴더에 있는 함수나 모듈을 import하는 방법을 정리하였습니다.
1. 현재 폴더의 함수 import
같은 폴더에 있는 파일은 파일명(.py 확장자 제외)으로 바로 import할 수 있습니다.
예시 구조
project/
├── main.py
└── utils.py
main.py
from utils import my_function
my_function()
2. 하위 폴더에 있는 함수 import
예시 구조
project/
├── main.py
└── helpers/
├── __init__.py
└── math_utils.py
이때 __init__.py는 패키지로 인식시키기 위한 파일입니다 (내용은 비워도 됨).
main.py
from helpers.math_utils import add_numbers
add_numbers(1, 2)
또는:
import helpers.math_utils as mu
mu.add_numbers(1, 2)
3. 상위 폴더의 함수 import
기본적으로 Python은 현재 스크립트가 실행되는 폴더를 기준으로 경로를 찾습니다. 따라서 상위 폴더의 모듈을 바로 import할 수 없습니다. 이럴 땐 다음 두 가지 방법 중 하나를 사용합니다:
방법 1: sys.path.append 사용
# child/module.py에서 상위 폴더의 utils.py를 import
import sys
import os
sys.path.append(os.path.abspath("..")) # 상위 폴더 경로 추가
from utils import helper_function
방법 2: 패키지 + 상대 경로 import (모듈이 패키지로 구성되어 있을 경우)
from ..utils import helper_function
주의: 이 방식은 python child/module.py처럼 직접 실행하면 작동하지 않고, python -m child.module처럼 -m 모듈 방식으로 실행해야 합니다.
감사합니다!
728x90
'프로그래밍 > Python' 카테고리의 다른 글
| Python lambda 함수란 (4) | 2025.07.16 |
|---|---|
| Python 함수 위 @ - 데코레이터 란 (8) | 2025.07.15 |
| Python *args, **kwargs 의미 (20) | 2025.07.14 |
| Python expand() 및 repeat() (16) | 2025.07.12 |
| Python squeeze 및 unsqueeze 함수 - view와의 차이 (4) | 2025.07.12 |