Repolode
pypa

pypa/pip-tools

Python 의존성을 고정해 재현 가능한 requirements 파일을 만들고, 환경을 파일에 맞게 동기화하는 명령줄 도구 모음(pip-compile 및 pip-sync)입니다.

스타
8,003
포크
686
열린 이슈
174
마지막 커밋
어제

어떤 프로젝트인가요?

pip-tools는 Python 프로젝트의 의존성을 고정된 상태로 최신화하면서 빌드의 예측 가능성을 유지하도록 돕습니다. pip-compile은 pyproject.toml, setup.py, setup.cfg 또는 requirements.in에서 의존성을 읽어 모든 전이 의존성을 포함하는 완전히 고정된 requirements.txt를 생성하며, pip의 해시 검증 모드에 사용할 해시도 선택적으로 생성할 수 있습니다.

pip-sync는 컴파일된 requirements 파일을 읽어 현재 가상 환경의 패키지를 설치, 업그레이드 또는 제거하여 환경이 파일과 정확히 일치하도록 합니다. 모든 패키지를 업그레이드하거나 특정 패키지만 업그레이드할 수 있으며, 계층형 requirements 파일끼리 제약 조건을 지정해 개발용과 프로덕션용 핀이 일관성을 유지하도록 할 수 있습니다.

이 도구는 pip를 사용해 가상 환경별로 설치하며, 프로젝트에서는 대상 Python 환경마다 별도로 핀 파일을 생성해야 한다고 안내합니다.

핵심 기능

  • 01pyproject.toml, setup.py, setup.cfg 또는 requirements.in에서 고정된 requirements.txt 파일을 생성합니다.
  • 02전이 의존성을 포함하고 각 핀이 어떤 패키지에 필요한지 표시합니다.
  • 03--generate-hashes 옵션으로 pip의 해시 검증 모드에 사용할 sha256 해시를 생성합니다.
  • 04--upgrade 및 --upgrade-package 옵션으로 모든 패키지 또는 특정 패키지를 업그레이드합니다.
  • 05pip-sync로 가상 환경을 requirements 파일과 정확히 일치하도록 동기화합니다.
  • 06서로 제약 조건을 지정하는 계층형 requirements 파일을 지원합니다.

활용 사례

  • 재현 가능한 프로덕션 빌드를 위해 애플리케이션 의존성을 고정합니다.
  • 핀을 의도적으로 갱신하면서 라이브러리의 CI 환경을 안정적으로 유지합니다.
  • 공통 제약 조건을 사용해 프로덕션용과 개발용 requirements 세트를 따로 관리합니다.
  • 입력 파일이 변경될 때 핀을 다시 생성하도록 pip-compile을 pre-commit 훅으로 실행합니다.

빠른 시작

  1. 1

    프로젝트의 가상 환경을 활성화하고 pip-tools를 설치합니다

    python -m pip install pip-tools
  2. 2

    requirements.in을 컴파일해 버전이 고정된 requirements.txt를 만듭니다

    pip-compile requirements.in
  3. 3

    requirements.txt에 맞게 가상 환경을 동기화합니다

    pip-sync

토픽

#python#dependency-management#pip#requirements#lockfile#packaging#hashes#pip-compile#pip-tools#setuptools

자주 묻는 질문

pip-tools은(는) 무엇인가요?
Python 의존성을 고정해 재현 가능한 requirements 파일을 만들고, 환경을 파일에 맞게 동기화하는 명령줄 도구 모음(pip-compile 및 pip-sync)입니다. pip-tools는 Python 프로젝트의 의존성을 고정된 상태로 최신화하면서 빌드의 예측 가능성을 유지하도록 돕습니다. pip-compile은 pyproject.toml, setup.py, setup.cfg 또는 requirements.in에서 의존성을 읽어 모든 전이 의존성을 포함하는 완전히 고정된 requirements.txt를 생성하며, pip의 해시 검증 모드에 사용할 해시도 선택적으로 생성할 수 있습니다.
pip-tools은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
pip-tools은(는) BSD-3-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
pip-tools은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. pip-tools의 마지막 커밋은 2026년 11월 6일입니다.
pip-tools은(는) 어디에 사용할 수 있나요?
재현 가능한 프로덕션 빌드를 위해 애플리케이션 의존성을 고정합니다. 핀을 의도적으로 갱신하면서 라이브러리의 CI 환경을 안정적으로 유지합니다. 공통 제약 조건을 사용해 프로덕션용과 개발용 requirements 세트를 따로 관리합니다. 입력 파일이 변경될 때 핀을 다시 생성하도록 pip-compile을 pre-commit 훅으로 실행합니다.
pip-tools는 어떻게 설치하나요?
프로젝트의 가상 환경을 활성화하고 pip-tools를 설치합니다: python -m pip install pip-tools requirements.in을 컴파일해 버전이 고정된 requirements.txt를 만듭니다: pip-compile requirements.in requirements.txt에 맞게 가상 환경을 동기화합니다: pip-sync
pip-tools은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pypa/pip-tools

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트