정리/Python

Python sys.path 를 사용해서 특정 경로 파일 임포트

워로디스 2026. 5. 3. 22:53

아래처럼 사용자 파일이 있는 폴더 경로를 sys.path에 추가하면, 그 폴더 안의 .py 파일을 일반 모듈처럼 import할 수 있습니다.

예시 폴더 구조:

my_project/
├─ main.py
└─ user_files/
   └─ my_module.py

user_files/my_module.py

def hello(name):
    return f"Hello, {name}!"

main.py

import sys
from pathlib import Path

# 현재 파일(main.py)이 있는 폴더
BASE_DIR = Path(__file__).resolve().parent

# 사용자가 만든 파이썬 파일들이 있는 폴더
USER_FILE_DIR = BASE_DIR / "user_files"

# sys.path에 해당 폴더 추가
sys.path.insert(0, str(USER_FILE_DIR))

# 이제 user_files/my_module.py 를 import 가능
import my_module

result = my_module.hello("Alice")
print(result)

실행 결과:

Hello, Alice!

핵심은 이 부분입니다.

sys.path.insert(0, str(USER_FILE_DIR))

sys.path는 파이썬이 모듈을 찾는 경로 목록입니다. 여기에 사용자의 파일이 들어 있는 디렉터리를 추가하면, 그 안의 .py 파일을 import할 수 있습니다.

예를 들어 /home/user/custom_modules/tool.py를 불러오고 싶다면:

import sys

sys.path.insert(0, "/home/user/custom_modules")

import tool

단, tool.py처럼 파일명에서 .py는 빼고 import 해야 합니다.

import tool      # 맞음
import tool.py   # 틀림