Skip to content

Python:ensurepip

pip 설치 프로그램 부트스트랩

ensurepip 패키지는 pip 설치 프로그램을 기존의 파이썬 설치나 가상 환경으로 부트스트랩 하는데 필요한 지원을 제공합니다. 이 부트스트랩 접근 방식은 pip가 자체 배포 주기가 있는 독립적인 프로젝트이며, 최신 사용 가능한 안정 버전이 CPython 참조 인터프리터의 유지 보수와 기능 배포에 번들로 제공된다는 사실을 반영합니다.

대부분, 파이썬의 최종 사용자는 이 모듈을 직접 호출할 필요가 없습니다 (pip는 기본적으로 부트스트랩 되어있어야 하기 때문입니다). 하지만, 파이썬을 설치할 때 (또는 가상 환경을 만들 때) pip를 건너뛰었거나 그 후에 명시적으로 pip를 제거했다면 필요할 수 있습니다.

INFORMATION

참고 이 모듈은 인터넷에 접속하지 않습니다. pip를 부트스트랩 하는 데 필요한 모든 구성 요소는 패키지의 내부 부품으로 포함됩니다.

Troubleshooting

ModuleNotFoundError in pydevd

Error while finding module specification for '/home/your/Applications/pycharm/plugins/python/helpers/pydev/pydevd.py' (ModuleNotFoundError: No module named '/home/your/Applications/pycharm/plugins/python/helpers/pydev/pydevd')

PyCharm에서 디버깅 모드로 subprocess 에서 ensure_pip 하면 위와 같이 문제가 발생하더라...

다음의 get_isolate_ensure_pip_flag()를 사용하여 pydevd를 사용하는지 확인하고,

import os
from functools import lru_cache


@lru_cache
def detect_pydevd() -> bool:
    return "PYDEVD_LOAD_VALUES_ASYNC" in os.environ


@lru_cache
def get_isolate_ensure_pip_flag() -> bool:
    """
    .. warning::
        If pydevd is connected,
        the ``python -Im ensure_pip`` command does not work properly.
    """
    return not detect_pydevd()

ensure_pip 명령의 앞에 사용되는 -Im에서 -I를 제거하면 된다.

다만, 격리모드가 아니면 문제가 발생될 소지가 있으니 테스트용에서만 사용하자.

See also