📌 1. pigar
자동화된 분석과 관리에 강점이 있는 도구
✅ 특징
- 프로젝트 코드에서 사용된 import 문을 기반으로 종속성을 자동 추출하여 requirements.txt를 생성
- PyPI를 통해 최신 패키지 버전을 자동 감지하여 requirements.txt에 추가
- 프로젝트 폴더 내에서 실행하면 모든 서브디렉토리까지 탐색하여 필요한 패키지를 찾음
- 캐시 기능이 있어서 한 번 찾은 패키지를 다시 분석할 때 속도가 빠름
- 단순 import 기반 분석이라서 동적 import (예: importlib.import_module)는 추적 불가
✅ 설치 및 사용법
pip install pigar
pigar generate
- 현재 디렉토리 내에서 종속성을 분석하고 requirements.txt를 생성함.
- 특정 프로젝트 폴더를 지정하여 실행 가능:
pigar generate -p /path/to/project
✅ 장점
- 패키지 버전까지 자동으로 관리하여 최신 상태로 유지 가능
- 캐시 기능 덕분에 반복 실행 시 속도가 빠름
- 서브디렉토리까지 자동 검색하여 종속성을 놓칠 가능성이 적음
❌ 단점
- 코드에서 사용된 import 문을 기반으로 분석하므로, setup.py나 pyproject.toml 같은 설정 파일을 활용하지 않음
- importlib과 같은 동적 import는 분석하지 못함
- 분석 속도가 pipreqs보다 느릴 수 있음
📌 2. pipreqs
가벼운 분석과 빠른 실행이 강점인 도구
✅ 특징
- 프로젝트 코드에서 사용된 패키지 이름만 추출하여 requirements.txt를 생성 (버전 정보 없음)
- 빠른 속도로 종속성을 분석하여 가벼운 프로젝트에 적합
- .py 파일을 직접 검사하여 import 문에서 사용된 패키지만 리스트업
- 패키지 버전 정보를 추가하려면 --savepath 옵션을 사용해야 함
- importlib 같은 동적 import는 감지하지 못함
✅ 설치 및 사용법
pip install pipreqs
pipreqs /path/to/project --force
- 지정된 프로젝트 폴더에서 종속성을 분석하고 requirements.txt를 생성
- 기존 requirements.txt를 덮어쓰려면 --force 옵션을 사용
- 버전 정보를 포함하려면:
pipreqs /path/to/project --force --savepath requirements.txt
✅ 장점
- 매우 빠른 실행 속도 (가벼운 프로젝트에 적합)
- 폴더를 지정해서 특정 디렉토리만 분석 가능
- requirements.txt 파일을 간단히 생성하는 용도로 적절
❌ 단점
- 기본적으로 패키지 버전 정보를 포함하지 않음
- setup.py 등의 추가 설정 파일을 참고하지 않음
- importlib 같은 동적 import는 분석하지 못함
- pigar보다 종속성 탐지가 단순하여 일부 패키지를 놓칠 가능성이 있음
✅ 비교 요약
기능 pigar pipreqs
패키지 분석 방식 | 코드에서 사용된 import 분석 | 코드에서 사용된 import 분석 |
버전 정보 포함 여부 | ✅ 포함 | ❌ 기본적으로 포함 안 함 (옵션 사용 가능) |
속도 | 상대적으로 느림 (캐시 활용 가능) | 매우 빠름 |
서브디렉토리 자동 탐색 | ✅ 가능 | ✅ 가능 |
동적 import 분석 | ❌ 불가능 | ❌ 불가능 |
설치 및 사용법 | pigar generate | pipreqs /path/to/project --force |
추가 기능 | 최신 버전 자동 확인 | 간단한 requirements.txt 생성 |
🏆 어떤 경우에 어떤 도구를 써야 할까?
- 패키지 버전까지 포함하여 종속성을 완벽하게 관리하고 싶다면? → pigar
- 가볍고 빠르게 requirements.txt를 만들고 싶다면? → pipreqs
- 대규모 프로젝트에서 서브디렉토리까지 깊이 분석해야 한다면? → pigar
- 빠르게 종속성 목록만 생성하고, 이후 버전을 직접 관리하고 싶다면? → pipreqs
🎯 결론
- 빠른 실행 속도가 필요하고, 버전 정보가 없어도 된다면 → pipreqs가 적합
- 패키지 버전 관리까지 자동화하고 싶다면 → pigar가 적합
⚡ 추천: 프로젝트 초기에 가볍게 pipreqs를 사용하여 requirements.txt를 만들고, 나중에 pigar로 버전 정보를 포함해 업데이트하는 것도 좋은 방법입니다.
'Tip > Python' 카테고리의 다른 글
파이썬 코드 품질 마스터를 위한 종합 가이드: 원칙부터 프로덕션까지 (0) | 2025.10.23 |
---|---|
파이썬 품질 관리의 모든 것: 핵심 지표와 테스트 전략으로 코드 품질 높이기 (0) | 2025.10.22 |
Ruff를 이용한 Python 코드 품질 관리 및 VS Code에서의 Python 코딩Ruff 소개 (0) | 2024.01.28 |