반응형
Python 프로젝트를 하다 보면 requirements.txt는 빠질 수 없는 필수 구성이다.
이 파일 하나로 필요한 패키지들을 한번에 설치하거나, 현재 프로젝트에서 어떤 패키지를 사용하는지 기록할 수 있다.
잘 관리하면 협업, 서버 배포, 로컬 개발 환경 세팅까지 모든 게 쉬워진다.
이 글에서는 requirements.txt를 다룰 때 자주 사용하는 pip 명령어들을 정리한다.
🔗 명령어 한눈에 보기
2025.03.15 - [🚀 Dev/Python] - [Python] requirements.txt 생성 및 설치 방법
1. 명령어 설명
1.1 pip freeze
현재 가상환경에 설치된 모든 패키지와 버전을 출력한다.
이 목록을 파일로 저장해 requirements.txt로 사용한다.
예제
pip freeze > requirements.txt
1.2 pip install -r requirements.txt
requirements.txt에 명시된 모든 패키지를 한 번에 설치한다.
협업 시 개발 환경을 맞출 때 필수적으로 사용하는 명령어다.
예제
pip install -r requirements.txt
1.3 pip freeze | grep 패키지명
설치된 패키지 중 특정 패키지만 필터링해서 저장하거나 확인할 수 있다.
예제
pip freeze | grep requests > requirements.txt
1.4 pip install 패키지명==버전
특정 버전의 패키지를 설치하고 싶을 때 사용한다.
requirements.txt에 고정 버전으로 직접 작성해도 된다.
예제
pip install numpy==1.26.0
또는
numpy==1.26.0 ← requirements.txt에 직접 작성
1.5 pip uninstall
더 이상 사용하지 않는 패키지를 제거하고, 이후 pip freeze로 목록을 갱신한다.
예제
pip uninstall pandas
pip freeze > requirements.txt
1.6 pip list
현재 설치된 모든 패키지 목록과 버전을 표 형태로 출력한다.
pip freeze보다는 사람이 읽기 쉽게 정리되어 있다.
예제
pip list
1.7 python -m pip install --upgrade pip
pip 자체를 최신 버전으로 업그레이드한다.
가상환경 만들고 나서 가장 먼저 해주는 게 좋다.
예제
python -m pip install --upgrade pip
1.8 pipreqs . --force
프로젝트 내에서 실제 사용 중인(import된) 패키지만 분석해서 requirements.txt를 생성한다.
- -force 옵션을 붙이면 기존 파일을 덮어쓴다.
(pipreqs는 별도로 설치 필요)
예제
pip install pipreqs
pipreqs . --force
2. 주의할 점
- pip freeze는 모든 패키지 + 의존성까지 포함되므로, 꼭 필요한 가상환경에서만 실행하자.
- requirements.txt는 최소 버전이 아니라 고정 버전으로 생성되므로 배포 시 환경이 정확히 일치해야 할 때 유용하다.
📌 Tip
VSCode나 PyCharm에서는 .venv 가상환경을 만든 뒤
터미널에서 위 명령어들을 실행하면 훨씬 깔끔하게 관리된다.
3. 명령어 한눈에 보기
pip freeze | 현재 설치된 패키지 목록 출력 |
pip freeze > requirements.txt | 패키지 목록을 파일로 저장 |
pip install -r requirements.txt | 파일에 있는 패키지 한 번에 설치 |
pip list | 설치된 패키지를 표로 출력 |
pip install 패키지==버전 | 특정 버전의 패키지를 설치 |
pip uninstall 패키지명 | 패키지 제거 |
python -m pip install --upgrade pip | pip 최신 버전으로 업그레이드 |
pip freeze | grep 패키지명 | 특정 패키지만 필터링하여 출력 |
pipreqs . --force | 실제 사용 중인 패키지만 추출해 저장 |
마무리하며
requirements.txt를 잘 관리하면 프로젝트의 재현성과 유지보수가 크게 향상된다.
처음부터 자동화된 도구(pipreqs)를 활용하거나, pip freeze로 버전까지 꼼꼼히 관리해두자.
협업이나 배포 시 발생할 수 있는 환경 차이도 미리 방지할 수 있다.
반응형
'Dev > Python' 카테고리의 다른 글
[FastAPI] 페이징, 정렬, 리스트 파라미터까지 포함한 검색 API 확장 설계 (0) | 2025.03.31 |
---|---|
[FastAPI] 다중 필터 검색 API 설계 (예: /products?brand=..&category=..) (1) | 2025.03.30 |
[FastAPI] 쿼리 파라미터 vs path 파라미터 설계 전략 (0) | 2025.03.29 |
[FastAPI] DELETE 요청 시 path param 여러 개 받는 방법 (0) | 2025.03.28 |
[FastAPI] DELETE 요청 시 JSON이 아닌 Path Param으로 값 전달하는 방법 (0) | 2025.03.27 |