2022-11-09 19:33:08

파이썬 프로젝트를 진행할 때 하나의 PC에 여러 개의 프로젝트를 각각의 가상환경으로 나눠서 관리하곤 합니다. venv, virtualenv 등의 가상환경 도구를 사용해서 말이죠. 가상환경을 쓰는 이유는 프로젝트마다 필요한 라이브러리가 다르기 때문입니다. 독립적인 공간을 만들어서 프로젝트에 맞는 라이브러리를 설치할 수 있게 해주는 것이 가상환경 기술을 사용하는 이유입니다. 

 

제가 만약 어떤 프로젝트를 위해 가상환경을 만들고 필요한 라이브러리를 설치하고 필요한 코드를 작성하였다고 가정하겠습니다. 이 프로젝트를 다른 사람도 실행할 수 있게 하려면 일단 파이썬 파일 등이 포함되어 있는 프로젝트 폴더를 전달해줘야 할 것입니다. 그런데 이것만으로는 부족합니다. 어떤 패키지를 설치했는지 정보도 알려줘야 다른 사람도 자신의 PC에서 수월하게 프로젝트를 실행할 수 있습니다. 

 

물론 제 PC에서는 터미널에 pip list라고 명령을 주면 설치된 패키지와 버전 정보를 알 수 있습니다. 이것을 드래그해서 복사해서 다른 사람에게 전달하는 것도 하나의 방법이 되겠지만, 더 나은 방법이 있습니다. 

 

pip freeze 사용법

requirements.txt 라는 파일에 그 정보를 작성해서 주는 것입니다. 보통 이렇게 설치되어 있는 패키지 정보를 담고 있는 메모장 파일 이름을 requirements.txt로 지어줍니다. pip를 이용해서 쉽게 설치되어 있는 패키지 정보를 requirements.txt에 적어줄 수 있습니다. 다음 명령을 터미널에서 실행하시면 됩니다. 

 

pip freeze > requirements.txt

 

위 명령을 실행하면, 디렉토리에 requirements.txt가 생성되어 있을 것입니다. 파일을 열어보면 다음과 같이 설치되어 있는 패키지 정보가 잘 들어가있을 것입니다.

 

 

이제 이 requirements.txt를 다른 사람에게 전달해주면 됩니다. 그러면 그 사람은 가상환경을 활성화시킨 다음에 아래 명령만 실행하면 한번에 필요한 패키지들을 모두 설치할 수 있습니다. 

 

pip install -r requirements.txt

 

아주 간단하죠? 하나씩 pip install 할 필요 없이 한 번에 모든 패키지가 설치되니 말이죠. 이제 다른 사람도 제가 짠 코드를 실행하는데 큰 어려움이 없을 것입니다. 

 

관련 글

- [python] 파이참 venv 가상환경 만들고 간단한 예제 코드 실행하기 (window 10)   

- [python] 가상환경 virtualenv 사용 방법 (venv와 비교)