반응형
[python] 파이썬 requirements.txt 처리
파이썬 프로젝트에서 requirements.txt 파일은 프로젝트가 의존하는 모든 외부 라이브러리(패키지)의 목록을 관리하는 데 사용되는 표준 방식입니다. 이 파일을 사용하면 개발 환경을 일관되게 유지하고, 다른 개발자나 배포 환경에서도 동일한 의존성을 쉽게 설치할 수 있습니다.
requirements.txt의 역할과 중요성
requirements.txt는 주로 다음과 같은 목적으로 사용됩니다:
- 의존성 관리: 프로젝트에 필요한 모든 라이브러리와 그 버전을 명확하게 기록합니다.
- 재현성 확보: 특정 시점의 개발 환경을 다른 컴퓨터나 환경에서도 정확하게 재현할 수 있게 합니다.
- 협업 용이: 팀원들이 동일한 라이브러리 버전을 사용하여 개발할 수 있도록 도와 충돌을 방지합니다.
- 배포 환경 설정: 애플리케이션을 서버나 컨테이너(Docker 등)에 배포할 때 필요한 의존성을 자동으로 설치할 수 있게 합니다.
requirements.txt 파일 생성 및 관리
1. 수동으로 파일 작성하기
가장 기본적인 방법은 필요한 라이브러리 이름을 직접 requirements.txt 파일에 한 줄에 하나씩 작성하는 것입니다. 특정 버전이나 최소 버전을 명시할 수도 있습니다.
# requirements.txt 예시
requests==2.31.0 # requests 라이브러리 버전 2.31.0 지정
beautifulsoup4>=4.9.3 # beautifulsoup4 라이브러리 버전 4.9.3 이상
pandas # pandas 라이브러리 최신 버전 설치
numpy~=1.23.0 # numpy 라이브러리 1.23.x 버전 중 최신 설치 (1.23.0 <= version < 1.24.0)
- ==: 정확한 버전 지정 (가장 안전하지만 유연성이 떨어짐)
- >=: 최소 버전 지정
- ~=: 호환 가능한 릴리스(Compatible release) 지정. ~=1.23.0은 1.23.0 이상 1.24.0 미만 버전을 의미합니다. 마이너 버전 업데이트는 허용하지만 메이저 버전 업데이트는 방지합니다.
- 버전 지정이 없으면 pip는 항상 최신 버전을 설치합니다.
2. 현재 환경의 라이브러리 목록 내보내기
현재 파이썬 환경(가상 환경)에 설치된 모든 라이브러리 목록을 requirements.txt 파일로 자동 생성할 수 있습니다.
pip freeze > requirements.txt
- 이 명령은 현재 환경에 설치된 모든 패키지와 그 정확한 버전을 requirements.txt 파일에 기록합니다.
- 주의할 점은 프로젝트에 직접적으로 필요한 라이브러리뿐만 아니라, 그 라이브러리들이 의존하는 다른 라이브러리(하위 의존성)까지 모두 포함된다는 것입니다. 따라서 파일이 상당히 길어질 수 있습니다.
- 팁: 새로운 프로젝트를 시작할 때는 깨끗한 가상 환경에서 필요한 라이브러리만 pip install로 설치하고, 개발이 완료될 시점에 pip freeze > requirements.txt를 실행하여 해당 프로젝트에 정확히 필요한 의존성만 기록하는 것이 좋습니다.
requirements.txt 파일 처리 (라이브러리 설치)
requirements.txt 파일에 명시된 모든 라이브러리를 설치하려면 다음 명령어를 사용합니다.
pip install -r requirements.txt
- 이 명령은 requirements.txt 파일을 읽어 거기에 명시된 모든 라이브러리를 한 번에 다운로드하고 설치합니다.
- 권장 사항: 항상 가상 환경(Virtual Environment) 내에서 이 작업을 수행하세요. 가상 환경을 사용하면 프로젝트별로 독립적인 의존성 관리가 가능하여 시스템 전체의 파이썬 환경과 충돌하는 것을 방지할 수 있습니다.
# 1. 가상 환경 생성 (처음 한 번만)
python -m venv my_project_env # 또는 conda create -n my_project_env python=3.9
# 2. 가상 환경 활성화
# Windows: .\my_project_env\Scripts\activate
# macOS/Linux: source my_project_env/bin/activate
# Conda: conda activate my_project_env
# 3. requirements.txt 파일이 있는 디렉토리로 이동
# cd /path/to/your/project
# 4. 라이브러리 설치
pip install -r requirements.txt
requirements.txt 관리 팁
- 가상 환경 사용: 위에서 강조했듯이, 모든 파이썬 프로젝트는 전용 가상 환경 내에서 관리하는 것이 표준이자 가장 좋은 방법입니다.
- 개발/배포 의존성 분리: 프로젝트 규모가 커지면 개발(테스트 프레임워크, 린터 등)에만 필요한 라이브러리와 실제 배포에 필요한 라이브러리를 분리하여 여러 개의 requirements 파일을 만들기도 합니다.
- requirements.txt (배포용 필수 라이브러리)
- requirements-dev.txt (개발용 라이브러리)
- 설치할 때는 pip install -r requirements.txt -r requirements-dev.txt 와 같이 여러 파일을 지정할 수 있습니다.
- 버전 고정의 장단점:
- 장점: requests==2.31.0처럼 정확히 버전을 고정하면 다른 환경에서 설치할 때 버전에 따른 호환성 문제가 발생할 확률이 매우 낮아집니다.
- 단점: 새롭게 발견된 버그 수정이나 보안 패치가 적용된 최신 버전의 이점을 누리기 어렵습니다.
- 업데이트: 시간이 지나면서 라이브러리를 업데이트해야 할 경우, requirements.txt 파일의 버전을 직접 수정하거나, pip install --upgrade <package_name>으로 개별 패키지를 업데이트한 후 pip freeze > requirements.txt를 다시 실행하여 반영할 수 있습니다.
requirements.txt 파일은 파이썬 프로젝트의 건강한 생태계를 유지하는 데 필수적인 도구입니다.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
TIOBE Index for June 2025 (1) | 2025.06.19 |
---|---|
[Python] 파이썬 python 데이터 처리 위한 기본 설치 라이브러리 (0) | 2025.06.17 |
[python] List of running process using python (0) | 2025.06.05 |
[python] zimport - 수많은 python 패키지를 압축하여 관리 (github.com/waveware4ai) (0) | 2025.06.04 |
[AI] 벡터 DB 만들어 보기 (0) | 2025.05.27 |