파이썬 패키지 다운로드 및 오프라인 환경에서의 설치 방법

2023. 2. 4. 21:38[개발] 지식/Python

오프라인 환경에서 파이썬 패키지를 설치하려면 패키지 의존성에 포함되는 모든 whl 파일을 다운받고, 오프라인 환경의 머신으로 이동시킨 뒤, pip install 을 수행해야 한다. 문제는 whl 파일을 다운로드 받는 환경의 OS와 오프라인 환경의 OS가 상이할 때 발생한다. 예를 들면 윈도우 환경에서 pip download를 수행하는 경우 윈도우 환경에 맞는 whl 파일이 다운로드 된다. 오프라인 환경의 OS가 리눅스인 경우 platform 옵션을 지정해서 해당 OS에 맞는 whl 파일을 다운로드 할 수 있지만, 리눅스의 상세 버전에 따라 차이가 있는지 실패하는 경우가 많았다. 그래서 아래 방법은 간단한 경우만 시도해보고 안된다면 굳이 추천하진 않는다. 차라리 오프라인 환경과 동일한 OS의 VM 또는 컨테이너를 생성한 뒤 거기서 platform 옵션을 빼고 다운로드 받는 것이 낫다.

whl 다운로드

인터넷이 가능한 머신에서 패키지 설치파일(whl)을 다운로드 받는다.

$ pip download -r requirements.txt -d ./whl/win
  • d : 다운로드 받을 디렉터리
  • r : 패키지 리스트 파일

일반적으로 이렇게 하면 현재 머신의 OS에 해당하는 whl 파일들을 의존성을 포함하여 다운로드 할 수 있다.

$ pip download --platform manylinux1_x86_64 --only-binary=:all: -r requirements.txt -d /whl/linux
  • platform : 호환되는 OS 지정
  • only-binary : binary 여부 (이렇게 지정해야 리눅스 컴파일러 버전이 안맞는 등의 문제를 방지할 수 있다)

설치

$ pip install --no-index -f ./whl -r requirements.txt

requirements.txt 기준으로 설치한다.

  • no-index : whl 파일의 순서를 고려하지 않고 의존성대로 설치한다
  • f : whl 파일이 위치한 경로를 지정한다.
  • r : 설치할 패키지 리스트가 정의된 파일
$ pip install -f ./whl/*

./whl/win 디렉터리 내 모든 whl 파일을 설치한다. requirements을 기준으로 다운받은 whl 파일이 전부라면 이 방법이 가장 간단하다.

<