requirements.txt 란?

# 예시
asgiref==3.3.1
beautifulsoup4==4.9.3
Django==3.1.5
django-bootstrap4==2.3.1
django-environ==0.4.5
Pillow==8.1.0
psycopg2==2.8.6
pytz==2020.5
soupsieve==2.1
sqlparse==0.4.1

한 마디로 얘기하자면 python 프로젝트의 의존성 정보가 담긴 문서이다.

 

의존성 정보를 requirements.txt에 작성하는 이유는 협업이나 오픈 소스 등 다른 사람이(혹은 자신이 다른 환경에서) 해당 프로젝트를 실행할 일이 있을 때 편의를 위해서라고 생각한다.

 

프로젝트를 실행하기 위해 프로젝트에서 사용한 패키지를 해당 환경에 모두 설치해야 하는데, 이러한 의존성 문제를 requirements.txt 파일을 이용하면 손쉽게 해결할 수 있다.

 

의존성 정보는 위의 예시와 같이 사용된 패키지와 버전 정보로 나타내는데, 몇가지 형식이 있다.

 

위와 같이 == 는 정확히 해당 버전을 설치하라는 얘기이고, == 대신 >, < 를 사용하면 해당 버전 이상이나 이전 버전을 설치하라는 얘기이다.

 

또한 2.* 와 같이 버전 정보를 와일드카드를 사용해 작성할 수도 있다. (2.* = 2.대의 아무 버전이나 가능하다는 의미)

 

이름이 꼭 requirements.txt일 필요는 없지만, 관례상 사용하는 이름이다. 이름만 봐도 의미를 알 수 있게끔 관례를 따르자!

 

 

 

 

 

작성 방법

작성 방법도 간단하다.

먼저 현재 프로젝트의 의존성 정보를 알수 있는 명령어!

pip freeze

pip freeze는 현재 프로젝트에 설치된 패키지들의 버전 정보를 출력해주는 명령어이고,

 

명령어를 입력하면 아래예시와 같은 패키지들의 버전 정보를 출력해준다.

asgiref==3.3.1
beautifulsoup4==4.9.3
Django==3.1.5
django-bootstrap4==2.3.1
django-environ==0.4.5
Pillow==8.1.0
psycopg2==2.8.6
pytz==2020.5
soupsieve==2.1
sqlparse==0.4.1

 

 

 

이를 requirements.txt 파일에 저장하면 간편히 의존성 정보 파일을 만들 수 있다.

pip freeze > requirements.txt

 

 

 

 

 

 

설치 방법

그리고 requirements.txt의 정보들을 하나씩 일일이 설치하지 않고

pip install -r requirements.txt

명령어를 사용하면 다른 환경에서도 현재 설치되있지 않은 패키지만 빠르게 설치할 수 있다!!!

 

 

 

 

 

 

 

출처:

https://enant.tistory.com/28

https://ssungkang.tistory.com/entry/Django-requirementstxt-를-통한-패키지-종속성-관리?category=320582

반응형

'django' 카테고리의 다른 글

[django] static 파일 설정  (0) 2021.02.25
[Django] 클래스형 뷰 (CBV, Class-Based View)  (0) 2021.02.14
[Django] 템플릿(template) 언어  (0) 2021.02.06
[Django] 쿼리셋(QuerySet)  (0) 2021.02.05
[Djnago] HttpRequest와 HttpResponse API  (1) 2021.02.02

+ Recent posts