Rust로 작성된 매우 빠른 Python 패키지 및 프로젝트 관리자로, pip, virtualenv, pyenv, pipx 등을 대체합니다.
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
프로젝트의 가상 환경을 활성화하고 pip-tools를 설치합니다
python -m pip install pip-tools - 2
requirements.in을 컴파일해 버전이 고정된 requirements.txt를 만듭니다
pip-compile requirements.in - 3
requirements.txt에 맞게 가상 환경을 동기화합니다
pip-sync
토픽
자주 묻는 질문
- 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 통계는 매일 갱신됩니다.
관련 프로젝트
Pipfile과 Pipfile.lock을 사용해 재현 가능한 빌드를 지원하는, pip와 virtualenv를 결합한 Python 가상 환경 및 의존성 관리 도구입니다.
애플리케이션과 의존성을 휴대용 virtualenv처럼 실행할 수 있는 단일 .pex 파일로 패키징하는 Python 도구입니다.
Git 또는 Mercurial 태그에서 패키지 버전을 가져와 setuptools와 연동하는 Python 도구입니다.
한 번 실행할 동안 패키지를 임시 환경에 설치한 뒤 폐기하는 Python 실행 도구입니다.
Python 패키지 설치를 위한 표준 도구로, Python Package Index(PyPI)와 기타 패키지 인덱스에서 패키지를 설치합니다.