본문 바로가기

기타

offline PC 에서 pip Install 적용하기

728x90

회사에서 일 하다보면 보안상의 이유로 인터넷이 연결되지 않은 PC 에서 pip install 을 사용해야 할 일이 생긴다

 

본 글은 온라인 PC 에서 pip install 을 통해 다운로드 받은 패키지들을 오프라인 PC 로 복사하는 방법을 소개한다

 

온라인 PC 에서 다음을 수행

1. 다운로드 받고 싶은 pip 패키지를 모아놓을 디렉터리를 만든다

 

mkdir package
cd package

 

2. 원하는 pip 패키지를 다운로드 받는다

pip install robotframework

 

3. 현재 설치된 패키지들을 리스트로 다운로드한다

pip freeze > requirements.txt

해당 파일을 열어보면 온라인 PC 에 설치된 패키지 목록이 적혀있다.
옮기기 원하는 패키지 목록만 남도록 수정한다 (그대로 냅둬도 된다)

 

4. 패키지 다운로드

작성된 패키지 목록 파일의 패키지들을 다운로드 한다

pip download -r requirements.txt

.whl 파일이나 .tar.gz 파일 등이 다운로드 된다

 

5. 다운로드 된 파일들을 오프라인 PC 로 옮긴다

requirements.txt 파일도 함께 옮긴다

 

이제 오프라인 PC 에서 다음을 수행

1. 가져온 디렉터리로 들어간다

cd {오프라인 PC 로 옮긴 패키지 디렉터리}

 

2. 그 후 디렉터리 내의 패키지들을 일괄 설치한다

 python -m pip install --no-index --find-links="./" -r requirements.txt

 

문제점

일부 패키지는 여전히 인터넷 연결을 요구하며 설치가 실패하기도 한다
나는 robotframework-appiumlibrary 가 그랬다

해결방법

python 의 site-packages 를 복사해서 가져다 놨더니 설치한 것 처럼 동작했다.

온라인 PC 의
C:\Users\{사용자이름}\AppData\Local\Programs\Python\Python39\Lib\site-packages
를 오프라인 PC 의
C:\Users\{사용자이름}\AppData\Local\Programs\Python\Python39\Lib\site-packages
로 덮어쓰기 했더니 pip install 한 것 처럼 동작했다.

 

마무리

일반적인 경우엔 패키지들을 다운로드 받아 가져가는 것이 설치 과정에서 안전할테지만,
설치 과정에서 인터넷을 요구하는 패키지를 마딱뜨릴 때에는 site-packages 디렉터리의 내용을 복사하여 가져간다

 

728x90