파이썬을 공부하면서부터 깃허브에 꼭 하나씩 있는 게 바로 requirements.txt다.

처음엔 이걸 왜 설치하라는 건지도 모르고 에러나면 설치하고 에러나면 설치하고의 반복이었는데 이거 하나면 번거로움이 줄어든다.

requirements.txt는 파이썬 프로젝트에서 필요한 패키지와 그 버전들을 명시해놓은 텍스트파일이다.

특히 팀 프로젝트에서 팀원들이 같은 환경을 구축할 수 있게 한다.

또한 사용하던 가상환경에서 다른 가상환경으로 옮길 때도 유용하다.

requirements.txt라는 걸 알고 나서도 일일히 내가 사용한 패키지들을 입력했었는데, 명령어 하나면 손쉽게 생성이 관리하다.

 

1. requirements.txt 자동 생성 방법

- 현재 가상환경, 내가 사용하는 파이썬 환경에 설치된 모든 패키지와 버전이 함께 기록된다. 

- 일반적으로 사용되는 명령어이다.

pip freeze > requirements.txt

또는

pip list --format=freeze > requirements.txt

 

2. requirements.txt 직접 작성 방법

- 필요한 패키지와 버전만 직접 입력할 수도 있다.

folium==0.18.0
plotly==5.24.1
python-dotenv==1.0.1
seaborn==0.13.2
Scrapy==2.12.0
scikit-learn==1.6.0

 

3. requirements.txt 설치 방법

- requirements.txt에 명시되어 있는 모든 패키지가 설치된다.

pip install -r requirements.txt

 

4. requirements.txt 내용 업데이트하기

- pip install로 필요한 패키지 설치 후 requirements.txt 내용도 업데이트 하려면 생성할 때와 같은 명령어를 입력하거나 직접 파일을 열어 필요한 패키지나 버전 등을 추가, 수정할 수 있다.

pip install [패키지명]
pip freeze > requirements.txt

 

5. 불필요한 패키지 제거 방법

- pip uninstall로 불필요한 패키지 제거 후 변경된 상태로 requirements.txt를 갱신해준다.

pip uninstall [패키지명]
pip freeze > requirements.txt

 

 

* 패키지 의존성 관리 도구

파이썬 패키지 관리 도구로 pip-tools 라는 것이 있다. 주요 패키지 (requirements.in) 와 해당 패키지의 의존성 (requirements.txt) 을 분리하여 관리할 수 있게 한다.

 

1. 설치

pip install pip-tools

 

2. 설치확인

pip-compile --version

 

3. 사용방법

- 주요 패키지 파일 (requirements.in)에는 프로젝트에서 직접 사용하는 주요 패키지만 기록한다.

- requirements.txt 생성 : 주요 패키지와 더불어 모든 의존성 패키지도 포함한다. 의존성 패키지는 주석으로 어떤 패키지에서 유래했는지 표시된다.

pip-compile

 

4. 의존성 업데이트

- 주요 패키지와 의존성 패키지의 최신 버전을 업데이트한다.

pip-compile --upgrade

 

5. 환경 파일 분리

- 개발용 패키지와 프로덕션 패키지를 별도로 관리 가능하다.

- requirements.in (프로덕션용) / dev-requirements.in (개발용) 으로 나뉜 경우 각각 컴파일해준다.

pip-compile requirements.in
pip-compile dev-requirements.in

 

6. 설치방법

pip install -r requirements.txt
pip install -r dev-requirements.txt

+ Recent posts