[Python] requirements.txt 생성하기
requirements.txt 파일은 왜 필요할까?
여러 명이 프로젝트를 진행할 때, 패키지의 버전을 통일하여 관리/개발하는 것은 매우 중요한 일이다. 예를 들어 Django를 이용한 백엔드 개발 프로젝트를 진행하는데 A라는 개발자는 Django 5.X.X 버전을 쓰고, B라는 개발자는 Django 4.X.X 버전을 사용하는 것과 같은 일은 기본적으로 발생하면 안된다.
이런 문제들을 해결하기 위해 파이썬 진영에서는 requirements.txt
라는 파일을 이용해 패키지 목록을 관리한다. 이 파일에는 현재 프로젝트에서 사용하고 있는 패키지와 해당 패키지의 버전의 나열이 기록된다.
💡
실제로는 requirements.txt 라는 이름이 강제되는 것은 아니다.
이는 어디까지나 관례적으로 굳어진 결과이며, 필요에 따라 다른 이름이 사용되는 경우도 있다.
이는 어디까지나 관례적으로 굳어진 결과이며, 필요에 따라 다른 이름이 사용되는 경우도 있다.
requirements.txt 생성 명령어
requirements.txt 파일을 생성하는 방법에는 다음과 같이 크게 두 가지가 있다.
- pip freeze 명령어
$ pip freeze > requirements.txt
- pip list 명령어
$ pip list --format=freeze > requirements.txt
기본적으로는 오랫동안 사용된 pip freeze
명령어를 많이 사용하는 편이지만, 패키지가 운영체제에 종속적일 때는 pip list
방식을 쓰는 것이 더 좋다. pip freeze
명령어는 pip
이 실행된 운영체제에서 사용할 수 있는 패키지의 다운로드 경로가 그대로 입력될 수 있기 때문에, 실행 환경이 달라지거나 하면 패키지 재설치 시 오류가 발생할 수 있다. pip list
방식은 패키지명==버전
과 같은 식으로 일관되게 내용물을 입력하기 때문에, pip
실행 환경과 관계없이 패키지 다운로드가 가능하다.
따라서, 다양한 개발/운영환경을 사용해야 한다면 pip list
명령어를 사용하는 것이 좋은 선택이다.
requirements.txt 설치 명령어
다음 명령어를 이용하면 requirements.txt에 기술된 패키지를 모두 설치한다.
$ pip install -r requirements.txt
참고한 문헌 및 글
[Python] pip 패키지 목록 requirements.txt 생성 및 설치 방법
개발에 있어서 개발 환경은 매우 중요한 요소이다. 딥러닝 모델을 구성할 때도 pytorch 버전에 따라 명령어가 차이가 나기 때문에 현재 진행하는 프로젝트에 어떤 패키지들이 어떤 버전으로 설치되어 있는지 기록해 두는 것이 중요하다. requirements.txt 파일은 현재 개발 환경(python)에 pip를 통해 설치된 모든 패키지 목록이 버전과 함께 기록되는 곳이다. 1. requirements.txt 생성 명령어 requirements.txt 파일을 만드는 방법은 두 가지가 있다. pip freeze 명령어를 사용하는 법 pip list 명령어를 사용하는 법 1.1. pip freeze 명령어 pip freeze > requirements.txt pip freeze를 사용하여 requirements…