수학과의 좌충우돌 프로그래밍

[Django] requirements.txt 를 통한 패키지 종속성 관리 본문

웹프로그래밍/Django

[Django] requirements.txt 를 통한 패키지 종속성 관리

ssung.k 2019. 3. 6. 17:45

requirements.txt 패키지 종속성 관리

 

intro

현재 장고 프로젝트를 진행중입니다.


둘이서 git 을 통해서 협업을 하고 있으며 각자 venv를 사용해 가상환경에서 작업을 하고 있습니다.


한 가지 문제에 봉착했는데 각자 작업을 하다보니 install 해오는 패키지가 달라


 merge를 할 때마다 문제가 생겼습니다.

 

패키지 종속성 관리

 git 을 통해 협업을 하게 되면 다음과 같은 문제에 봉착하게 됩니다.


파일들은 버젼관리가 잘되더라도, install 한 패키지는 내 환경에만 남아있기 때문이죠.


이럴 경우에는 내 환경에 어떤 패키지들을 사용하고 있나 함께 넘겨주도록 합니다.


현재 환경에서 설치한 패키지를 알려주는 명령어는 다음과 같습니다.

 

pip freeze

 

그 결과 설치되어있는 패키지들을 확인할 수 있습니다.

certifi==2018.11.29
chardet==3.0.4
defusedxml==0.5.0
Django==2.1.7
django-allauth==0.39.1
django-appconf==1.0.3
django-imagekit==4.0.2
idna==2.8
oauthlib==3.0.1
pilkit==2.0
Pillow==5.4.1
python3-openid==3.1.0
pytz==2018.9
requests==2.21.0
requests-oauthlib==1.2.0
six==1.12.0
urllib3==1.24.1

 

이제 이를 파일에 담아주어 같이 버젼관리를 해줌으로서 협업자에게 전달하게 됩니다.


이를 파일에 담아주기 위해서는

pip freeze > requirements.txt

다음이 같이 패키지의 내용들을 requirements.txt 에 담아줄 수 있습니다.


그 후 함께 버젼관리를 해주면 협업자도 내가 무슨 패키지를 사용하였는지 확인이 가능합니다.

 


그렇다면 패키지를 하나씩 확인하면서 설치를 해야할까요?


다행히도 이를 한 번에 install 할 수 있습니다.

pip install -r requirements.txt

현재 없는 패키지만 빠르게 설치할 수 있습니다.


Comments