Pipenv
in DevOps
.
정의
- 파이썬 프로젝트에서 패키지 관리를 보다 쉽게 할 수 있도록 도와주는 도구
Pip
와Virtualenv
의 기능을 결합하여 파이썬 프로젝트의 의존성 관리를 효율적으로 처리할 수 있음
주요 기능
- 가상 환경 관리
- 프로젝트별 가상 환경을 자동으로 생성하고 관리함
- 프로젝트 간의 패키지 충돌을 방지하는 데 도움이 됨
- 패키지 관리
Pipfile
과Pipfile.lock
파일을 통해 패키지를 관리함Pipfile
: 프로젝트 의존성 정의Pipfile.lock
: 패키지 버전에 lock을 걸어 일관된 개발 환경 보장
- 패키지의 보안 취약점을 자동으로 검사
Pipfile.lock
파일을 통해 팀원들이 동일한 패키지 버전을 사용할 수 있게 하여 일관된 개발 환경 유지
Pip vs Virtualenv & Pipenv
Pipenv는 Pip와 Virtualenv의 장점을 결합한 도구로, 더 간편한 패키지 및 가상 환경 관리를 제공한다.
기능 | Pip | Virtualenv | Pipenv |
---|---|---|---|
주요 목적 | 파이썬 패키지 설치 및 관리 | 가상 환경 생성 및 관리 | 패키지 및 가상 환경 통합 관리 |
가상 환경 지원 | 기본적으로 가상 환경을 지원하지 않음 | 가상 환경을 생성하여 프로젝트 격리 | 가상 환경을 자동으로 생성 및 관리 |
설치 파일 | requirements.txt 파일을 사용 | 가상 환경 내에서 별도의 파일 사용 | Pipfile 및 Pipfile.lock 파일 사용 |
의존성 관리 | 의존성 관리 가능하지만 수동으로 requirements.txt 파일 작성 필요 | 가상 환경 내에서 독립적으로 패키지 설치 및 관리 | Pipfile을 통해 자동으로 의존성 관리 |
프로젝트 격리 | 없음 | 각 프로젝트마다 독립된 환경 제공 | 각 프로젝트마다 독립된 환경 제공 |
패키지 버전 고정 | requirements.txt에 버전을 명시할 수 있음 | 가상 환경 내에서 별도로 패키지 버전 관리 가능 | Pipfile.lock을 통해 버전 고정 |
추가 도구 필요 | 없음 | Virtualenv 자체를 설치해야 함 | pipenv 자체를 설치해야 함 |
통합 도구 | 없음 | Pip와 함께 사용 가능 | Pip와 Virtualenv의 기능 통합 |
보안 검사 | 없음 | 없음 | 패키지 보안 취약점 자동 검사 |
개발 패키지 관리 | 별도 관리 필요 | 가상 환경 내에서 독립적으로 관리 가능 | pipenv install –dev |
주요 명령어
pipenv install
:Pipfile
생성 및 업데이트, 의존성 목록을 읽어 해당 패키지들을 가상 환경에 설치pipenv install <package>
: 패키지 설치 및Pipfile
과Pipfile.lock
을 업데이트pipenv uninstall <package>
: 패키지 제거 및Pipfile
과Pipfile.lock
을 업데이트pipenv shell
: 현재 프로젝트의 가상 환경에 진입pipenv lock
:Pipfile
을 기반으로Pipfile.lock
을 생성pipenv install --dev <package>
: 개발 환경에서만 필요한 패키지를 설치