requirements.txt 란?
# 예시
beautifulsoup4==4.9.3
bs4==0.0.1
chardet==3.0.4
cycler==0.10.0
DateTime==4.3
html5lib==1.1
.
.
.
한 마디로 얘기하자면 python 프로젝트의 의존성 정보가 담긴 문서이다.
의존성 정보를 requirements.txt에 작성하는 이유는 협업이나 오픈 소스 등 다른 사람이(혹은 자신이 다른 환경에서) 해당 프로젝트를 실행할 일이 있을 때 편의를 위해서라고 생각한다. 프로젝트를 실행하기 위해 프로젝트에서 사용한 패키지를 해당 환경에 모두 설치해야 하는데, 이러한 의존성 문제를 requirements.txt 파일을 이용하면 손쉽게 해결할 수 있다.
의존성 정보는 위의 예시와 같이 사용된 패키지와 버전 정보로 나타내는데, 몇가지 형식이 있다.
위와 같이 == 는 정확히 해당 버전을 설치하라는 얘기이고, == 대신 >, < 를 사용하면 해당 버전 이상이나 이전 버전을 설치하라는 얘기이다.
또한 2.* 와 같이 버전 정보를 와일드카드를 사용해 작성할 수도 있다. (2.* = 2.대의 아무 버전이나 가능하다는 의미)
이름이 꼭 requirements.txt일 필요는 없지만, 관례상 사용하는 이름이다. 이름만 봐도 의미를 알 수 있게끔 관례를 따르자!
작성 방법
직접 작성도 가능하지만, 간편하게 현재 프로젝트의 의존성 정보를 작성할 수 있는 방법이 있다.
pip freeze > requirements.txt
pip freeze는 현재 프로젝트에 설치된 패키지들의 버전 정보를 출력해주는 명령어이고, 이를 requirements.txt 파일에 출력하면 간편히 의존성 정보 파일을 만들 수 있다.
설치 방법
requirements.txt 파일을 이용해 필요한 패키지들을 간편하게 설치할 수 있다.
pip install -r requirements.txt
위의 명령어를 사용하면 requirements.txt 에 적힌 패키지들을 해당 버전에 맞게 설치해준다.
(만약 도중에 다른 패키지들과 충돌 등의 문제로 설치가 되지 않은 패키지가 있다면 수동으로 설치해 해결해야 한다!)