requirements.txt를 사용하여 필수 Python 패키지 관리

Python 프로젝트를 다른 사용자와 공유하거나 빌드 시스템을 사용하여 Python 애플리케이션을 생성하는 경우 필요한 외부 패키지를 지정해야 합니다. 환경을 복원해야 하는 다른 위치에 프로젝트를 복사하려면 필요한 종속 패키지도 정의해야 합니다.

외부 종속 Python 패키지를 지정하는 데 권장되는 방법은 요구 사항 파일(readthedocs.org)을 사용하는 것입니다. 이 파일에는 프로젝트에 필요한 종속 패키지 버전을 설치하는 pip 명령 목록이 포함되어 있습니다. 가장 일반적인 명령은 pip freeze > requirements.txt입니다. 이 명령은 환경의 현재 패키지 목록을 requirements.txt 파일에 기록합니다.

요구 사항 파일에는 설치된 모든 패키지의 정확한 버전이 포함되어 있습니다. 요구 사항 파일을 사용하여 환경의 요구 사항을 고정할 수 있습니다. 정확한 패키지 버전을 사용하면 다른 컴퓨터에서 사용자 환경을 쉽게 재현할 수 있습니다. 요구 사항 파일에는 패키지가 버전 범위, 다른 패키지의 종속성 또는 pip 이외의 설치 프로그램으로 설치된 경우에도 포함됩니다.

필수 조건

  • Python 워크로드에 대한 지원과 함께 설치된 Visual Studio. 자세한 내용은 Visual Studio에서 Python 지원 설치를 참조하세요.

  • 요구 사항 파일 기존 요구 사항 파일을 사용하거나 이 문서에서 설명한 대로 파일을 생성할 수 있습니다.

기술적으로 어떤 파일이름이라도 요구 사항을 추적하는 데 사용할 수 있습니다. 그러나 Visual Studio는 ‘requirements.txt’라는 요구 사항 파일에 특정 지원을 제공합니다. 패키지를 설치할 때 -r <full path to file> 인수를 사용하여 파일의 기본 이름을 지정할 수 있습니다.

requirements.txt에 나열된 종속성 설치

requirements.txt 파일이 있는 프로젝트를 로드하는 경우 파일에 나열된 모든 패키지 종속성을 설치할 수 있습니다.

  1. 솔루션 탐색기에서 프로젝트를 확장한 다음 Python 환경 노드를 확장합니다.

  2. 패키지를 설치할 환경 노드를 찾습니다. 노드를 마우스 오른쪽 단추로 클릭하고 requirements.txt 설치를 선택합니다.

    Visual Studio 2019의 요구 사항 텍스트 파일에서 Python 패키지를 설치하는 방법을 보여 주는 스크린샷

    Visual Studio 2022의 요구 사항 텍스트 파일에서 Python 패키지를 설치하는 방법을 보여 주는 스크린샷

  3. 출력 창에서 패키지 설치 진행 상황을 모니터링할 수 있습니다.

    요구 사항 텍스트 파일을 통해 Python 패키지 설치 출력을 보여주는 스크린샷

    출력에는 설치된 필수 패키지와 영향을 받는 pip 명령에 필요한 업데이트 및 최신 pip 버전의 가용성이 나열됩니다.

가상 환경에서 종속성 설치

기존 가상 환경에 Python 패키지 종속성을 설치할 수도 있습니다.

  1. 솔루션 탐색기에서 프로젝트를 확장하고 Python 환경 노드를 확장합나디.

  2. 패키지를 설치할 가상 환경 노드를 찾습니다. 노드를 마우스 오른쪽 단추로 클릭하고 requirements.txt 설치를 선택합니다.

가상 환경을 만들어야 하는 경우 가상 환경 사용을 참조하세요.

requirements.txt 파일 생성

프로젝트에 필요한 모든 Python 패키지를 이미 환경에 설치한 경우 Visual Studio에서 requirements.txt 파일을 생성할 수 있습니다.

  1. 솔루션 탐색기에서 프로젝트를 확장하고 Python 환경 노드를 확장합나디.

  2. 요구 사항 파일을 생성할 환경 노드를 찾습니다. 노드를 마우스 오른쪽 단추로 클릭하고 requirements.txt 생성을 선택합니다.

    Visual Studio 2019에서 Python 패키지 종속성의 요구 사항 텍스트 파일을 생성하는 방법을 보여 주는 스크린샷

    Visual Studio 2022에서 Python 패키지 종속성의 요구 사항 텍스트 파일을 생성하는 방법을 보여 주는 스크린샷

기존 requirements.txt 파일에 항목 추가 또는 새로 고침

requirements.txt 파일이 이미 있는 경우 Visual Studio는 다음과 같은 몇 가지 옵션을 포함하는 프롬프트를 표시합니다.

요구 사항 텍스트 파일이 이미 있을 때 항목을 업데이트 또는 추가하는 옵션이나 파일을 바꿀 수 있는 옵션이 표시된 프롬프트의 스크린샷

  • 전체 파일 바꾸기: requirements.text 파일에 정의된 모든 항목, 메모 및 옵션을 덮어씁니다.
  • 기존 항목 새로 고침: 현재 설치된 버전과 일치하도록 requirements.text 파일의 버전 지정자를 업데이트합니다.
  • 항목 업데이트 및 추가: requirements.text 파일의 기존 요구 사항을 새로 고치고 파일 끝에 모든 새 패키지 요구 사항을 추가합니다.

Visual Studio에서는 pip를 실행하여 환경에 대한 현재 패키지 요구 사항을 검색한 다음, 선택 사항에 따라 requirements.txt 파일을 업데이트합니다.

수동으로 패키지 종속성 설치

pip가 requirements.txt 파일에 정의된 패키지 종속성을 설치하지 않으면 전체 설치에 실패합니다.

이 문제를 해결하기 위한 두 가지 옵션이 있습니다.

  • requirements.txt 파일을 수동으로 편집하여 실패한 패키지를 제외한 다음, 설치 프로세스를 다시 실행합니다.

  • pip 명령 옵션을 사용하여 설치 가능한 패키지 버전을 참조합니다.

pip 휠로 요구 사항 파일 업데이트

pip wheel 명령을 사용하여 종속성을 컴파일하는 경우 requirements.txt 파일에 --find-links <path> 옵션을 추가할 수 있습니다.

  1. pip wheel 명령을 호출하여 필요한 종속성 목록을 컴파일합니다.

    pip wheel azure
    

    출력은 수집된 패키지에 대해 빌드된 휠을 표시합니다.

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. 패키지 버전 요구 사항과 함께 find-links 옵션 및 no-index 옵션을 requirements.txt 파일에 추가합니다.

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. 업데이트된 요구 사항 파일을 사용하여 pip 설치 프로세스를 실행합니다.

    pip install -r requirements.txt -v
    

    출력은 설치 프로세스의 진행률을 추적합니다.

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...