ensurepip — pip 설치 프로그램 부트스트래핑

ensurepip — pip 설치 프로그램 부트스트래핑

ensurepip 패키지는 기존 Python 설치나 가상 환경에 pip 설치 프로그램을 부트스트래핑하는 지원을 제공합니다 (3.4에서 추가). 이 부트스트래핑 접근 방식은 pip가 자체 릴리스 주기를 가진 독립 프로젝트이며, 최신 안정 버전이 CPython 참조 인터프리터의 유지보수·기능 릴리스에 번들된다는 사실을 반영합니다.

출처: Python documentation

본문

대부분의 경우 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를 설치합니다 (활성 가상 환경 내에서는 허용되지 않음).

기본적으로 pipXpipX.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는 이전 버전의 기존 설치를 사용 가능한 버전으로 업그레이드할지 여부를 나타냅니다. altinstalldefault_pip를 모두 설정하면 ValueError가 발생합니다. verbosity는 부트스트래핑 작업의 sys.stdout 출력 수준을 제어합니다. ensurepip.bootstrap 감사 이벤트를 root 인자로 발생시킵니다.

부트스트래핑 과정은 sys.pathos.environ 모두에 부수 효과가 있습니다. 서브프로세스에서 명령줄 인터페이스를 호출하면 이러한 부수 효과를 피할 수 있습니다.

더 알아보기 (Learn more)