[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
    

     

     

    'Development > 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