Pipenv

.


정의

  • 파이썬 프로젝트에서 패키지 관리를 보다 쉽게 할 수 있도록 도와주는 도구
  • PipVirtualenv의 기능을 결합하여 파이썬 프로젝트의 의존성 관리를 효율적으로 처리할 수 있음

주요 기능

  1. 가상 환경 관리
    • 프로젝트별 가상 환경을 자동으로 생성하고 관리함
    • 프로젝트 간의 패키지 충돌을 방지하는 데 도움이 됨
  2. 패키지 관리
    • PipfilePipfile.lock 파일을 통해 패키지를 관리함
      • Pipfile: 프로젝트 의존성 정의
      • Pipfile.lock: 패키지 버전에 lock을 걸어 일관된 개발 환경 보장
    • 패키지의 보안 취약점을 자동으로 검사
    • Pipfile.lock 파일을 통해 팀원들이 동일한 패키지 버전을 사용할 수 있게 하여 일관된 개발 환경 유지

Pip vs Virtualenv & Pipenv

Pipenv는 Pip와 Virtualenv의 장점을 결합한 도구로, 더 간편한 패키지 및 가상 환경 관리를 제공한다.

기능PipVirtualenvPipenv
주요 목적파이썬 패키지 설치 및 관리가상 환경 생성 및 관리패키지 및 가상 환경 통합 관리
가상 환경 지원기본적으로 가상 환경을 지원하지 않음가상 환경을 생성하여 프로젝트 격리가상 환경을 자동으로 생성 및 관리
설치 파일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>: 패키지 설치 및 PipfilePipfile.lock을 업데이트
  • pipenv uninstall <package>: 패키지 제거 및 PipfilePipfile.lock을 업데이트
  • pipenv shell: 현재 프로젝트의 가상 환경에 진입
  • pipenv lock: Pipfile을 기반으로 Pipfile.lock을 생성
  • pipenv install --dev <package>: 개발 환경에서만 필요한 패키지를 설치