requirement
requirements.txt란
파이썬 프로젝트가 실행되기 위해 필요한 모든 외부 라이브러리(패키지)와 그 정확한 버전을 기록해 둔 간단한 텍스트 파일입니다.
- 재현성 (Reproducibility): 다른 컴퓨터(동료 개발자, 서버 등)에서도 pip install -r requirements.txt 명령어 하나만으로 당신과 똑같은 개발 환경을 완벽하게 복제할 수 있습니다.
- 협업 (Collaboration): 팀원이 새로 프로젝트에 참여했을 때, 어떤 라이브러리를 설치해야 할지 일일이 알려줄 필요가 없습니다.
- 의존성 관리: 내 프로젝트가 request
가상 환경(Virtual Environment) 사용하기
requirements.txt는 절대로 당신의 컴퓨터 전체에 설치된 파이썬 라이브러리를 기준으로 만들면 안 됩니다. 오직 이 프로젝트만을 위한 격리된 "가상 환경" 안에서 만들어야 합니다.
1단계: 가상 환경 생성 및 활성화
아직 가상 환경을 사용하고 있지 않다면, 프로젝트 루트 디렉토리에서 터미널을 열고 딱 한 번만 실행해주세요.
1.1 가상 환경 생성 (폴더 이름은 보통 venv):
python3 -m venv venv
1.2 가상 환경 활성화 (프로젝트 작업을 시작할 때마다 실행)
- Linux / macOS:
source venv/bin/activate
- Windows (Git Bash):
source venv/Scripts/activate
- Windows (Command Prompt / PowerShell):
.\venv\Scripts\activate
활성화되면 터미널 프롬프트 앞에 (venv)가 붙게 됩니다. 이 상태에서 설치하는 모든 패키지는 시스템 전체가 아닌, 이 venv 폴더 안에만 설치됩니다.
2단계: 필요한 모든 라이브러리 설치하기
pip install flask gunicorn gevent
pip install python-dotenv redis pymysql
pip install chromadb sentence-transformers torch
pip install requests
3단계: requirements.txt 파일 자동 생성 (가장 중요한 명령어)
모든 라이브러리가 설치되었다면, 터미널에 다음 명령어를 입력하세요.
pip freeze > requirements.txt
- pip freeze: 현재 활성화된 가상 환경에 설치된 모든 패키지와 그 정확한 버전을 목록으로 출력합니다.
- 그 출력 결과를 requirements.txt라는 파일에 저장(리디렉션) 합니다.
requirements.txt 파일의 내용 예시
# Flask & Gunicorn
Flask==3.0.0
gunicorn==22.0.0
gevent==24.2.1
# Handlers & Clients
requests==2.31.0
python-dotenv==1.0.1
redis==5.0.4
PyMySQL==1.1.0
# AI & Vector DB
chromadb==0.4.24
sentence-transformers==2.7.0
torch==2.3.0
# ... 그 외 의존성 패키지들 (numpy, tqdm 등) ...
requirements.txt 사용하는 방법
배포용으로 만들때 기존 라이브러리를 설치하려면 아래의 명령을 실행합니다.
그러면 requirements.txt에 적힌 모든 라이브러리가 정확한 버전으로 자동으로 설치됩니다.
pip install -r requirements.txt