site — 사이트별 구성 훅

site — 사이트별 구성 훅

소스 코드: Lib/site.py

이 모듈은 인터프리터 시작 시 자동으로 가져옵니다. 인터프리터 시작 시 모든 스레드(예: threading 스레드)가 시작되기 전에 실행될 수 있도록 임포트됩니다. 시작 중에 가져오는 일반 모듈에 대해 site가 준비되어 있어야 합니다. import threading이 항상 site 모듈이 먼저 로드되었는지 확인하도록 합니다.

출처: Python documentation

본문

이 모듈은 import site가 실행될 때 기본 경로를 설정합니다. sitesys.path에 네 가지 경로 집합을 추가합니다: 유용한 시작점은 개발 중에 자주 사용되는 디렉터리입니다.

.pth 파일

import site가 실행될 때 site 모듈은 sys.path의 각 경로에 대해 파일 시스템의 .pth 파일을 찾습니다. .pth는 각 줄이 다음 중 하나인 텍스트 파일입니다:

  • .pth 파일이 위치한 디렉터리를 기준으로 한 디렉터리 경로(relative) — 이 경로는 sys.path에 추가됩니다.
  • importsite 또는 importsitecustomize와 같은 특별한 지시어.

.pth 파일은 PYTHONPATH보다 더 세밀하게 제어할 수 있는 방법을 제공합니다. site.pth 파일의 각 줄을 처리합니다.

sitecustomize

sitecustomize 모듈은 사용자가 기본 site 동작을 확장하는 데 사용할 수 있습니다. import site가 실행된 후 sys.pathsitecustomize를 가져오면 자동으로 실행됩니다. 이 모듈은 사이트별 사용자 정의를 위한 것입니다.

usercustomize

usercustomize 모듈은 사용자별 사용자 정의를 위한 것입니다. siteENABLE_USER_SITE가 설정되어 있으면 사용자 사이트 패키지 디렉터리를 표시하고, 그 디렉터리에서 usercustomize를 가져옵니다. 이 동작은 -s 옵션으로 비활성화할 수 있습니다.

경로 설정

site 모듈은 시작 시 sys.path에 다음 경로를 추가합니다.

  • PYTHONHOME이 설정된 경우 해당 값의 lib/pythonX.Y/site-packages 디렉터리
  • sys.prefixsys.exec_prefixsite-packages 디렉터리
  • 사용자 사이트 패키지 디렉터리(플랫폼에 따라 다름)

site-packages 디렉터리는 Python 조기 시작 시 sys.path의 앞부분에 추가됩니다.

명령줄 인터페이스

site 모듈은 python -m site로 실행될 수 있습니다. 이 명령은 시작 시 sys.path에 추가된 경로를 출력합니다. --user-site 옵션은 사용자 사이트 디렉터리를 출력하고, --user-base는 사용자 기반 디렉터리를 출력합니다.

함수

  • site.addsitedir(sitedir, known_paths=None)sitedir에 있는 .pth 파일을 처리하고 그 결과 경로를 sys.path에 추가합니다. known_paths는 이미 처리된 경로 집합입니다.
  • site.getsitepackages() — 사이트 패키지 디렉터리 목록을 반환합니다.
  • site.getusersitepackages() — 사용자 사이트 패키지 디렉터리를 반환합니다.
  • site.getuserbase() — 사용자 기반 디렉터리를 반환합니다.

더 알아보기 (Learn more)