본문 바로가기
python

오프라인에서 python package 설치하기

디지털노마드 2021. 10. 25.
반응형

python package 설치 만큼 쉬운것이 없겠지만 (pip install ...) 엄격한 회사보안 규정안에서는 python package 를 다운 받아 사용하기가 여간 까다로운 작업일 때가 있습니다. 일단 외부에서 필요한 package 를 다운받아 놓고, 그것을 옮겨서 설치한다는 느낌으로 하시면 됩니다. 

 

[외부 컴퓨터에서의 작업]

 

1. python package 를 받아 놓을 새로운 폴더를 만듭니다. 

2. 원하는 package 를 다운 받습니다.

 

(예시)
pip install pytest
pip install cmake
pip install ninja-build
등등

 

3. 이 다운 받은 모든 package 를 txt 파이롤 리스트를 만듭니다. 

 

pip freeze > 리스트로만들파일이름
pip freeze > list.txt

 

여기까지 하면 새 폴더에 list.txt 라는 파일이 만들어져있고, 이 파일에는 현재 컴퓨터에 있는 모든 python package 의 이름과 현재 버젼이 적히게 됩니다. 

 

4. list.txt 에 있는 pkg 를 압축 파일로 다운 받습니다. 

 

pip download -r 리스트파일이름
pip download -r list.txt

 

이렇게하면 list.txt 를 참고하여 python package 를 방금 만든 새로운 폴더에 다운을 받습니다. 보통은 확장자 whl 이라 tar.gz 가 됩니다. 

 

작업은 다 끝났고, 이 새로운 폴더를 통째로 압축해서 오프라인으로 작업할 컴퓨터로 옮겨 주시면 됩니다. 

 

[오프라인으로 작업할 컴퓨터]

 

1. 파일을 받아 왔다면 새로운 폴더를 하나 만들어서 받아온 파일 (list.txt 파일과 whl 등의 pkg 파일들)을 풀어 놓습니다. 

 

2. 아래와 같이 작업해서 오프라인으로 설치가 완료 됩니다. 

 

python -m pip install --no-index --find-links="./" -r 리스트파일또는package파일
python -m pip install --no-index --find-links="./" -r list.txt
python -m pip install --no-index --find-links="./" -r pyserial-3.5-py2.py3-none-any.whl

 

뒤쪽에 parameter 를 list.txt 의 리스트 파일을 넣으면 list 에 있는 모든 package 를 일괄 설치하게 되고, 하나하나의 설치 파일명을 넣게 되면 대상이 되는 package 만 설치를 할 수 있습니다. 

 

 

반응형

댓글