ensurepip — pip 설치 프로그램 부트스트래핑
ensurepip — pip 설치 프로그램 부트스트래핑
ensurepip 패키지는 기존 Python 설치나 가상 환경에 pip 설치 프로그램을 부트스트래핑하는 지원을 제공합니다 (3.4에서 추가). 이 부트스트래핑 접근 방식은 pip가 자체 릴리스 주기를 가진 독립 프로젝트이며, 최신 안정 버전이 CPython 참조 인터프리터의 유지보수·기능 릴리스에 번들된다는 사실을 반영합니다.
본문
대부분의 경우 Python 최종 사용자들은 이 모듈을 직접 호출할 필요가 없습니다(pip가 기본적으로 부트스트래핑되어야 하므로). 하지만 Python 설치 시(또는 가상 환경 생성 시) pip 설치가 건너뛰어졌거나, pip를 명시적으로 제거한 후에는 필요할 수 있습니다.
이 모듈은 인터넷에 접속하지 않습니다. pip를 부트스트래핑하는 데 필요한 모든 구성 요소가 패키지의 내부 부분으로 포함되어 있습니다. 이것은 선택적(optional) 모듈로, CPython 배포본에 없다면 배포자 문서를 확인하세요. PEP 453이 이 모듈의 원래 근거와 사양입니다.
명령줄 인터페이스
명령줄 인터페이스는 인터프리터의 -m 스위치로 호출합니다. 가장 간단한 호출은:
python -m ensurepip
이 호출은 pip가 아직 설치되어 있지 않으면 설치하고, 이미 있으면 아무것도 하지 않습니다. 설치된 pip 버전이 ensurepip에 있는 버전보다 최소한 최신인지 확인하려면 --upgrade 옵션을 전달합니다:
python -m ensurepip --upgrade
기본적으로 pip는 현재 활성화된 가상 환경(활성화되어 있으면)이나 시스템 사이트 패키지(활성 가상 환경이 없으면)에 설치됩니다. 설치 위치는 두 가지 추가 옵션으로 제어합니다:
--root <dir>— 현재 활성 가상 환경의 루트나 현재 Python 설치의 기본 루트 대신 주어진 루트 디렉터리 기준으로pip를 설치합니다.--user— 현재 Python 설치에 대해 전역이 아닌 사용자 사이트 패키지 디렉터리에pip를 설치합니다 (활성 가상 환경 내에서는 허용되지 않음).
기본적으로 pipX와 pipX.Y 스크립트가 설치됩니다(X.Y는 ensurepip를 호출하는 데 사용된 Python 버전). 스크립트는 두 추가 옵션으로 제어합니다:
--altinstall— 대체 설치를 요청하면pipX스크립트가 설치되지 않습니다.--default-pip— "기본 pip" 설치를 요청하면 두 정규 스크립트에 더해pip스크립트가 설치됩니다.
두 스크립트 선택 옵션을 모두 제공하면 예외가 발생합니다.
모듈 API
ensurepip는 프로그래밍 방식 사용을 위한 두 함수를 노출합니다:
ensurepip.version()— 환경을 부트스트래핑할 때 설치될 사용 가능한 pip 버전을 지정하는 문자열을 반환합니다.ensurepip.bootstrap(*, root=None, upgrade=False, user=False, altinstall=False, default_pip=False, verbosity=0)—pip를 현재 또는 지정된 환경에 부트스트래핑합니다.root는 설치 기준이 될 대체 루트 디렉터리를 지정하고,upgrade는 이전 버전의 기존 설치를 사용 가능한 버전으로 업그레이드할지 여부를 나타냅니다.altinstall과default_pip를 모두 설정하면ValueError가 발생합니다.verbosity는 부트스트래핑 작업의sys.stdout출력 수준을 제어합니다.ensurepip.bootstrap감사 이벤트를root인자로 발생시킵니다.
부트스트래핑 과정은 sys.path와 os.environ 모두에 부수 효과가 있습니다. 서브프로세스에서 명령줄 인터페이스를 호출하면 이러한 부수 효과를 피할 수 있습니다.