[python] requirements.txt pip freeze 가상환경으로 정리 본문

Python

[python] requirements.txt pip freeze 가상환경으로 정리

최재강 2021. 10. 6. 16:38

pip freeze명령어는 현재 내 환경에 pip로 설치되어 있는 라이브러리들을 모두 출력해 준다. 따라서 Django 프로젝트 처럼 requirements가 필요한 프로젝트를 만들 때 터미널에서 다음과 같이 쓰인다.

pip freeze > requirements.txt

pip freeze의 결과를 단순히 requirements.txt 파일에 넣는 것이다.

그런데 pip freeze 명령어의 특성상 내 환경의 모든 pip 라이브러리를 출력하는 것이기 때문에 의도치 않게 많은 라이브러리들이 requirements.txt에 적힐 수 있다.

의도치 않은 많은 라이브러리들..

github에 내 프로젝트를 public하게 공개해야 하거나 꼭 그것이 아니더라도 해당 프로젝트에 필요한 패키지만 설치하도록 하는 것이 합리적일 것이다. 따라서 필요한 라이브러리만 requirements.txt에 넣어보자.

필요 없는 라이브러리를 한줄씩 없애는 방법도 있겠지만 노가다를 하지 않고도 깔끔하게 requirements.txt를 만들 수 있다. 그것은 가상환경을 생성하여 그 환경에 설치된 라이브러리만 freeze 하도록 하는 것이다.

가상환경 생성은 다음과 같이 하면 된다.

python -m venv "가상환경이름"

만들고 해당 가상환경에 접속한다.

source "가상환경이름"/bin/activate

티미널 앞에 ("가상환경이름") 이렇게 표시가 된다면 잘 된 것이다.

그다음 pip로 해당 가상환경에 필요한 라이브러리를 install하고 freeze 하면 끝이다.

 

사실 이를 미연에 방지하기 위해서는 프로젝트마다 따로 가상환경을 생성하는 습관을 들이는 것이 최고다.

Comments