ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [pipreqsnb] 파이썬 requirements.txt 파일 생성하는 방법 알아보기
    Python/개발환경 2024. 5. 9. 09:57
    반응형

    파이썬 requirements.txt 파일 쉽게 생성하는 방법 알아보기


    파이썬(Python)으로 프로젝트를 배포할 때, 다른 컴퓨터에서도 동일한 실행 결과를 생성할 수 있도록 해야 합니다. 이를 재현성이라고 하며, 파이썬은 같은 버전의 파이썬과 패키지들을 설치한 경우 대부분 재현성을 확보할 수 있습니다.

    이번에는 파이썬 프로젝트를 배포할 때, 재현성을 확보하기 위해서 설치해야 하는 패키지의 이름과 버전을 나열한 requirements.txt 파일을 생성하는 방법을 알아보도록 하겠습니다.

     

     

    requirements.txt


    파이썬은 버전에 따라서 지원하는 패키지의 종류, 그리고 패키지의 버전이 다릅니다. 이 때문에 어떤 버전의 패키지를 설치해야 하는지를 명시한 문서가 필요한데요, 대부분의 경우에는 requirements.txt가 그 역할을 하게 됩니다.

    requirements.txt 파일의 예시를 하나 보여드리자면, 아래와 같은 형태로 적힌 텍스트 문서입니다.

     

     

    konlpy==0.6.0
    matplotlib==3.7.5
    numpy==1.24.3
    pandas==2.0.3
    scikit_learn==1.3.2
    tensorflow==2.13.0
    tensorflow_intel==2.13.0
    tqdm==4.66.4
    

     

     

    여기에서 나타나는 정보는, 패키지 이름과 버전 정보이지요. 등호 두 개가 사용되었다면, 해당 프로젝트에서는 지정된 버전과 완전히 일치해야만 정상 동작을 보증한다는 의미이며, 부등호로 표시되었을 때는 지정된 버전 이상 또는 이하여야 정상 동작을 보증한다는 의미입니다. requirements.txt 파일은 단순 텍스트 파일이므로, 직접 타이핑을 해서 작성해도 무관합니다.

     

     

    requirements.txt 파일 자동으로 만들기


    하지만, requirements.txt 파일을 수작업으로 만들기 싫은 분들은 현재 프로젝트에서 사용한 패키지 정보를 저장하는 방법을 이용해서 자동 생성을 할 수도 있습니다. 예를 들어, A 프로젝트용 가상환경을 만들어둔 상태라면, 그 가상환경을 활성화한 다음 커맨드 명령어로 pip freeze > requirements.txt 라고 입력해 주시면 requirements.txt 파일이 생성됩니다.

     

     

    그런데 이 방법을 이용하면, 실제로 프로젝트에서 사용하지 않은 패키지 정보까지도 requirements.txt 파일에 저장된다는 단점이 있습니다. 그래서, 특정 프로젝트 파일을 조회한 뒤, 실제로 사용한 패키지만 저장하는 작업을 자동으로 해 주는 프로그램이 필요하지요. 저는 pipreqsnb 를 사용하는 편입니다.

     

     

    pipreqsnb


    pipreqsnb는 특정 파이썬 파일을 입력하면 그 파일에서 사용된 패키지들의 목록과 버전을 자동으로 저장해 주는 프로그램입니다. 이 프로그램은 패키지 의존성 문제가 자주 발생하는 딥러닝 프로젝트에서 유용하게 사용할 수 있는데요, 설치를 위해서는 pip install pipreqsnb 커맨드 명령어를 통해 설치할 수 있습니다. 만약 주피터 노트북(Jupyter Notebook)에서 사용하는 ipynb 파일을 이용하지 않는 경우에는 해당 기능이 제외된 pipreqs를 설치하는 것을 권장드립니다.

     

     

    pipreqsnb를 설치한 뒤에는, 간단한 명령어 작성만으로도 requirements.txt 파일을 생성할 수 있습니다. 프로젝트 폴더 이름과 인코딩 규격 정도만 알면 되지요.

     

     

    pireqsnb는 pireqsnb [options] <path> 명령을 통해 실행할 수 있는데, 이 때 [options] 정보는 pypi에 작성된 문서를 참조해 보시면 됩니다. 저는 encoding 옵션 이외에는 거의 사용하지 않는 편입니다.


    <path> 에는 프로젝트 폴더의 경로를 입력해 주면 됩니다. 단일 py 파일이나 ipynb 파일을 입력할 경우에는, requirements.txt 파일을 생성할 때 에러가 발생하기 때문에 폴더를 만든 뒤, 그 폴더를 지정해 주시는걸 추천드립니다.

    반응형

    댓글

문의: jwkang3929@naver.com