파이썬 가상환경의 핵심, requirements.txt 완벽 가이드

파이썬 프로젝트를 진행하다 보면 다양한 라이브러리를 설치하게 됩니다. 이때 프로젝트에 사용된 라이브러리 목록을 requirements.txt 파일로 관리하면, 다른 환경(팀원의 PC, 서버 등)에서도 동일한 환경을 쉽고 빠르게 구축할 수 있습니다.




1. 현재 환경의 패키지 목록 추출하기 (Freeze)

가상환경이 활성화된 상태에서 현재 설치된 라이브러리와 그 버전을 파일로 저장하는 방법입니다. 판다스(Pandas)나 넘파이(NumPy)처럼 프로젝트에 설치된 모든 패키지 리스트가 텍스트 파일로 생성됩니다.

  • 명령어: pip freeze > requirements.txt
  • 설명: pip freeze는 설치된 패키지 목록을 출력하는 명령어이며, > 기호는 그 출력 내용을 파일로 저장하라는 의미입니다.



2. 새로운 환경에 패키지 한 번에 설치하기 (Install)

다른 컴퓨터나 새로운 가상환경에서 requirements.txt에 적힌 라이브러리들을 그대로 복구하는 방법입니다. 일일이 하나씩 설치할 필요 없이 명령어 한 줄로 해결됩니다.

  • 명령어: pip install -r requirements.txt
  • 설명: -r 옵션은 "파일(recursive)로부터 읽어서 설치하라"는 뜻입니다.



가상환경 생성부터 라이브러리 복구까지의 전체 흐름

실제 작업 순서를 표로 정리하면 다음과 같습니다.

단계 작업 내용 실행 명령어 (Windows/Bash)
1. 생성 새로운 가상환경 만들기 python -m venv venv
2. 활성화 가상환경 안으로 들어가기 source venv/bin/activate (Mac/Linux)
venv\Scripts\activate (Windows)
3. 설치 파일에 기록된 패키지 복구 pip install -r requirements.txt
4. 확인 설치된 목록 검토 pip list



실무에서 사용하는 꿀팁

단순히 생성하고 설치하는 것 외에 알아두면 좋은 유용한 팁들입니다.

  • 특정 패키지만 포함하고 싶을 때: pip freeze는 가상환경 내 모든 패키지를 긁어옵니다. 만약 깔끔하게 프로젝트에서 직접 import한 패키지만 추출하고 싶다면 pipreqs라는 별도의 라이브러리를 사용하는 것이 좋습니다.
  • pip install pipreqs
  • pipreqs ./
  • 버전 고정의 중요성: requirements.txt에는 pandas==2.1.0과 같이 버전이 명시됩니다. 이는 시간이 지나 라이브러리가 업데이트되어 코드가 작동하지 않는 문제를 방지해 줍니다.
  • 파일 이름 관례: 반드시 requirements.txt일 필요는 없지만, 파이썬 생태계의 표준 관례이므로 가급적 이 이름을 사용하는 것이 좋습니다.