AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Python 프로젝트에서 requirements.txt 자동 생성 방법: pipreqs와 pigar의 완전 가이드

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

- Python 개발자 및 DevOps 엔지니어: 의존성 관리 자동화 도구 사용법 학습

- 난이도: 중간 (기초부터 고급 기능까지 포함)

핵심 요약

  • pip freeze의 한계: pip freeze는 가상 환경 외부 패키지나 불필요한 종속성을 포함할 수 있음
  • pipreqs: 실제 코드의 import 명령어를 분석해 프로젝트별 요구사항만 추출
  • pigar: 복잡한 프로젝트 분석, 패키지 검색, 버전 불일치 점검 기능 제공

섹션별 세부 요약

1. pip freeze의 문제점

  • pip freeze가상 환경 설치된 모든 패키지를 포함
  • 프로젝트에 직접적인 영향을 주지 않는 시스템 패키지 포함 가능
  • 새 프로젝트 생성 시 사전 설치 없이 requirements.txt 생성 불가

2. pipreqs 사용법

  • 가상 환경 생성pip install pipreqs 설치
  • pipreqs project 명령어로 코드 내 import 기반 requirements.txt 생성
  • 예시: matplotlib==3.9.1, numpy==2.0.0구체적 버전 정보 포함

3. pigar의 고급 기능

  • Flask 애플리케이션을 대상으로 pigar generate로 요구사항 생성
  • Lambda 프로젝트에서 boto3==1.34.142, colorlog==6.8.2스펙 맞춤형 패키지 추출
  • pigar check패키지 버전 불일치 점검, pigar search패키지 검색 가능

4. pipreqs vs pigar 비교

| 기능 | pipreqs | pigar |

|--------------|--------------|---------------|

| 속도 | ⚡ 매우 빠름 | 🔄 보통 |

| 정확성 | ✅ 높음 | ✅ 매우 높음 |

| 로컬 임포트 | ❌ 제한적 | ✅ 우수 |

| 추가 기능 | ❌ 기본 제공 | ✅ 패키지 검색, 버전 점검 |

5. 최적화된 사용 패턴

  • 프로덕션: pigar gen -f requirements.txt .
  • 개발 환경: pigar gen -f requirements-dev.txt .
  • CI/CD 통합: pipreqs . --force자동화된 의존성 점검 설정

결론

  • pipreqs는 간단한 프로젝트에, pigar는 복잡한 프로젝트에 적합
  • pipreqs . --scan-notebookspigar gen --with-referenced-comments노트북 및 주석 기반 분석 활용
  • CI/CD 파이프라인에 자동 생성 스크립트 통합하여 의존성 관리 효율성 극대화