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 |