파이썬 패키지 오프라인 설치
파이썬으로 cx_Oracle이나 seaborn 패키지 기능을 사용할 일이 있었는데, 내부망에는 인터넷은 따로 안되고, pypi 미러 서버도 없어서 패키지를 usb 등을 통해서 설치해야 했다.
source distribution 을 다운받으면 내가 빌드(=내 PC 환경에 맞는 기계어로 번역)를 해줘야해서, 위에서 확인한 <오프라인PC> 환경에 맞는 built distribution 을 다운로드 받으면 된다.
인터넷이 되면 굳이 이럴 필요 없이 아래 명령어 한 줄이면 되는데,
python -m pip install <패키지명> --upgrade
오프라인으로 하려니 dependencies (먼저 설치되어야하는 패키지) 문제로 너무 오래 걸렸다.
나중에 또 헷갈릴까봐 기록..!
1단계 -> 3단계로 dependencies 오류(대략 A패키지가 없음) 발생시 그 다음 단계 방법을 적용하면 된다.
cx_Oracle은 다행히 dependencies 없이 1단계에서 끝났고, seaborn은 dependencis 오류가 발생해서 3단계까지 가서 해결했다.
다운 받을 패키지 확인
오프라인PC 환경 체크
1. OS 종류: windows / linux
2. OS 시스템 : 32비트 운영체제 / 64비트 운영체제
3. 파이썬 버전 확인 명령어
python --version
4. OS, 비트, 파이썬 버전 확인하여 알맞은 버전 찾기:
패키지 버전에 따라 파이썬 2.7까지만 지원한다거나 3 이후부터 지원하는 경우가 있기 때문에 무조건 최신으로 설치하면 안되고 내 파이썬 버전(3.9)을 지원하는지 봐야한다.
이건 패키지 공식 홈페이지나 구글링 통해 알아보면 된다.
1. 패키지 단독 설치
온라인PC
pypi.org 접속 후 패키지+버전 검색
오프라인PC
ㅇ 패키지(.whl)설치 명령어 :
pip3 install -t C:/<타겟경로> C:/<파일경로>/cx_Oracle-8.3.0-cp39-cp39-win_amd64.whl
* -t 타겟 경로 지정 옵션은 생략 가능
ㅇ 설치시 pypi 접속 안 된 다는 등 온라인 기능을 요구하는 경우 옵션 추가
python -m pip install --no-index --find-links "./" <패키지파일명>
2. 패키지 폴더 만들기 (일반적인 방법, dependencies 오류 90% 이상 해결법)
온라인PC
1. <인터넷PC> 에 파이썬 설치
- <오프라인PC> 와 파이썬 버전이 동일하면 좋지만 달라도 옵션으로 해결할 수 있음
2. 패키지 관련 파일 다운로드
- cmd 실행
- mkdir <패키지폴더명>
- python -m pip download --python-version 3.7.3 --only-binary :all: -d <패키지폴더경로> <패키지명>
cf ) <오프라인PC> 에 설치된 파이썬 버전 확인해서 버전 입력할 것
예시 ) python -m pip download --python-version 3.7.3 --only-binary :all: -d . seaborn
cf )
<온라인PC>에서 전혀 다른 플랫폼의 패키지를 다운로드할 수 있는 옵션(
--platform, --python-version, --implementation, --abi)을 사용하면 dependency 문제에 대해 처리하는 옵션을 반드시 명시해야 한다 (--only-binary=:all: , --no-deps 둘 중 하나) 참고 : https://pip.pypa.io/en/stable/cli/pip_download/
cf ) 모든 dependencies 를 내려 받는건 아니고 바이너리를 지원(--only-binary :all:) 하는 패키지들만 받기 때문에
실제 실행후 오류 발생시 부족한 패키지는 추가로 다운로드 받을것 => 3단계
3. requirements.txt 파일 생성
- 관련 패키지설치를 한 번에 하기 위해 만드는 파일
- 하나씩 해줘도 상관없음
- 아래처럼 패키지명 == , < , > , >= 버전 목록 형태
pandas==1.1.5
matplotlib==3.5.3
numpy==1.21.6
typing_extensions==4.4.0
seaborn==0.12.1
4. 패키지폴더 및 requirements.txt <오프라인PC> 내부로 이동
=====================================================
오프라인PC
1. cmd 창 관리자 권한으로 실행
2. 패키지 폴더로 이동 (다운로드 폴더에 있다고 가정)
예시)
cd C:\Users\<계정명: jung>\Downloads\<패키지폴더명: seaborn_python_package>
2. 설치 명령어 입력
python -m pip install --no-index --find-links "./" -r requirements.txt
3. 설치 실패시 보통 dependencies 때문으로 부족한 패키지 추가로 가져와서
python -m pip install --no-index --find-links "./" <패키지파일명>
====================================================
3. 바이너리 미지원 패키지 추가 다운
2단계에서 모든 dependencies 를 내려 받는건 아니고 바이너리를 지원(--only-binary :all:) 하는 패키지들만 받기 때문에 실제 실행후 오류 발생시 부족한 패키지는 추가로 다운로드 받아야 한다.
2단계에서 오류가 뜨는 패키지에 대해 2단계를 반복한다.


댓글
댓글 쓰기