Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 pip 부트스트랩하기 – ensurepip 모듈 완벽 가이드

Python 표준 배포판에는 기본으로 포함된 모듈과 패키지 외에도, 수많은 서드파티 개발자들이 만든 패키지가 PyPI(Python Package Index, https://pypi.org)라는 공식 패키지 저장소에 업로드되어 있습니다. 이곳에서 패키지를 설치하려면 pip 유틸리티가 필요합니다. pip는 독립적인 프로젝트이지만, Python 3.4부터는 별도 설치 없이 바로 사용할 수 있도록 Python 배포판에 부트스트랩(기본 탑재)되어 제공됩니다.

ensurepip 모듈이란?

ensurepip 모듈은 기존 Python 설치 환경에 pip를 부트스트랩하는 기능을 지원합니다. 일반적인 상황에서는 사용자가 이 모듈을 직접 호출할 필요가 없지만, 일반 설치나 가상 환경 생성 시 pip 설치를 건너뛴 경우에는 유용하게 사용할 수 있습니다.

pip 없이 가상 환경 생성하기

다음 명령을 실행하면 pip 유틸리티가 설치되지 않은 가상 환경이 생성됩니다.

C:\python37>python -m venv --without-pip e:\testenv

이렇게 생성된 가상 환경 디렉터리의 scripts 폴더에는 pip 유틸리티가 포함되어 있지 않습니다. 이때 ensurepip 모듈을 사용하면 시스템 전역 설치에 포함된 버전의 pip를 가상 환경에 통합할 수 있습니다. 최신 버전을 설치하려면 --upgrade 옵션을 함께 지정하면 됩니다.

E:\testenv>scripts\python -m ensurepip --upgrade
Looking in links: C:\Users\acer\AppData\Local\Temp\tmpp1bb2lym
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

pip 설치 동작을 변경하는 옵션

ensurepip의 기본 설치 동작은 아래 옵션들을 통해 조정할 수 있습니다.

  • --root <dir> : 현재 활성화된 가상 환경의 루트(있다면)나 현재 Python 설치의 기본 루트 대신, 지정한 루트 디렉터리를 기준으로 pip를 설치합니다.
  • --user : 현재 Python 설치 전역이 아닌, 사용자 사이트 패키지(user site-packages) 디렉터리에 pip를 설치합니다. 단, 이 옵션은 활성화된 가상 환경 내에서는 사용할 수 없습니다.

ensurepip 모듈의 주요 함수

  • ensurepip.version() : 환경을 부트스트랩할 때 설치되는 번들된 pip의 버전을 문자열로 반환합니다.
  • ensurepip.bootstrap() : 현재 환경 또는 지정된 환경에 pip를 부트스트랩합니다.

주의사항

부트스트랩 과정은 sys.pathos.environ에 부작용(side effect)을 일으킬 수 있습니다. 또한 부트스트랩 과정에서 pip 실행에 필요한 추가 모듈들이 함께 설치될 수 있지만, 다른 소프트웨어는 이러한 의존성이 항상 기본적으로 존재한다고 가정해서는 안 됩니다.