[python] sys.path 와 sys.path.append()
A A
728x90

 

파이썬에서 모듈이나 패키지를 불러올 때 import 구문이 어떻게 모듈 경로를 찾는지 아는 게 중요하다.

1. sys.path란?

파이썬이 모듈을 찾을 때 참고하는 경로들의 리스트야.

  • 현재 작업 디렉터리
  • 환경 변수 PYTHONPATH에 지정된 경로들
  • 표준 라이브러리 경로 등

즉, import할 때 이 경로들을 순서대로 뒤져서 모듈을 찾는다.

2. sys.path.append()는 무엇인가?

이 함수는 sys.path 리스트에 새로운 경로를 추가하는 역할을 한다. 그래서 파이썬 인터프리터가 모듈을 검색할 때 추가한 경로도 포함된다.

import sys
sys.path.append('/내가/추가하고/싶은/경로')

3. 왜 쓰는가?

  • 모듈이 기본 경로(예: 현재 디렉터리, site-packages 등) 외부에 있을 때
  • 커스텀 라이브러리나 프로젝트 폴더를 임시로 모듈 검색 경로에 포함시키고 싶을 때

4. 주의사항

  • append는 경로를 리스트 끝에 추가하므로, 이미 존재하는 모듈과 이름 충돌 시 원하는 모듈이 아닌 다른 모듈이 먼저 로드될 수 있음
  • 경로를 sys.path.insert(0, 경로)로 앞에 추가하면 우선순위를 높일 수 있음
  • 경로를 잘못 지정하면 모듈을 찾지 못하거나 의도하지 않은 모듈이 로드될 수 있음
  • 보통 환경 변수 PYTHONPATH 설정이나 패키지 설치로 문제를 해결하는 게 좋음

5. 예제

import sys

# 현재 sys.path 출력
print(sys.path)

# 새 경로 추가
sys.path.append('/home/user/my_modules')

# 추가된 경로 확인
print(sys.path)

# 이제 my_modules 안에 있는 모듈 import 가능
import my_custom_module

 

 

'Developer > Python' 카테고리의 다른 글

[python] lambda , map() , filter()  (0) 2025.05.17
[python] except raise assert  (0) 2025.05.16
[python] if __name__ == "__main__" :  (0) 2025.05.15
[python] math, random, platform  (2) 2025.05.15
[python] module, pakage  (1) 2025.05.14
Copyright 2024. GRAVITY all rights reserved