인프라

centos7 python3 pip3 오프라인 설치 (yumdownloder 사용)

소행성왕자 2021. 12. 7. 17:49

 

centos7 에서 python3 pip3 오프라인 설치 하는 방법
Repository 추가
$ yum install -y epel-release.noarch
$ yum install -y https://repo.ius.io/ius-release-el7.rpm
업그레이드 하고 관련 파일 다운로드(일반계정)
$ python3 download -d . --upgrade pip
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in /usr/local/lib/python3.6/site-packages (21.3.1)
[naya@localhost cpptest]$ pip3 --version
pip 21.3.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)



파이썬에과 관련된 파일들을 다운로드 한다. (root) 
--resolve 의존성 파일 모두 다운 
--destdir 다운받을 디렉토리
$ yum install -y --downloadonly --downloaddir=. python36u python36u-libs python36u-devel python36u-pip
$ yumdownloader --resolve --destdir=. opencv opencv-devel opencv-python libffi-devel bzip2-devel
$ yumdownloader --resolve --destdir=. gcc gcc-c++

 

다운받은것 설치
$ yum install -y ./*.rpm

또는

$ yum install -y OpenEXR-libs-1.7.1-8.el7.i686.rpm jasper-libs-1.900.1-33.el7.i686.rpm libffi-devel-3.0.13-19.el7.i686.rpm \
libxml2-2.9.1-6.el7_9.6.i686.rpm alsa-lib-1.1.8-1.el7.i686.rpm jbigkit-libs-2.0-11.el7.i686.rpm \
libffi-devel-3.0.13-19.el7.x86_64.rpm libxshmfence-1.2-1.el7.i686.rpm \
atk-2.28.1-2.el7.i686.rpm keyutils-libs-1.5.8-3.el7.i686.rpm libgcc-4.8.5-44.el7.i686.rpm lz4-1.8.3-1.el7.i686.rpm \
audit-libs-2.8.5-4.el7.i686.rpm krb5-devel-1.15.1-51.el7_9.x86_64.rpm libgcrypt-1.5.3-14.el7.i686.rpm mesa-libEGL-18.3.4-12.el7_9.i686.rpm \
avahi-libs-0.6.31-20.el7.i686.rpm krb5-libs-1.15.1-51.el7_9.i686.rpm libglvnd-1.0.1-0.8.git5baa1e5.el7.i686.rpm mesa-libGL-18.3.4-12.el7_9.i686.rpm \
bzip2-devel-1.0.6-13.el7.i686.rpm krb5-libs-1.15.1-51.el7_9.x86_64.rpm libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.i686.rpm mesa-libgbm-18.3.4-12.el7_9.i686.rpm \
bzip2-devel-1.0.6-13.el7.x86_64.rpm libX11-1.6.7-4.el7_9.i686.rpm libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.i686.rpm mesa-libglapi-18.3.4-12.el7_9.i686.rpm \
bzip2-libs-1.0.6-13.el7.i686.rpm libXau-1.0.8-2.1.el7.i686.rpm libgpg-error-1.12-3.el7.i686.rpm nss-softokn-freebl-3.67.0-3.el7_9.i686.rpm \
cairo-1.15.12-4.el7.i686.rpm libXcomposite-0.4.4-4.1.el7.i686.rpm libjpeg-turbo-1.2.90-8.el7.i686.rpm opencv-2.4.5-3.el7.i686.rpm \
cdparanoia-libs-10.2-17.el7.i686.rpm libXcursor-1.1.15-1.el7.i686.rpm libkadm5-1.15.1-51.el7_9.x86_64.rpm opencv-2.4.5-3.el7.x86_64.rpm \
cracklib-2.9.0-11.el7.i686.rpm libXdamage-1.1.4-4.1.el7.i686.rpm libmount-2.23.2-65.el7_9.1.i686.rpm opencv-core-2.4.5-3.el7.i686.rpm \
cups-libs-1.6.3-51.el7.i686.rpm libXext-1.3.3-3.el7.i686.rpm libogg-1.3.0-7.el7.i686.rpm opencv-devel-2.4.5-3.el7.i686.rpm \
dbus-libs-1.10.24-15.el7.i686.rpm libXfixes-5.0.3-1.el7.i686.rpm libpciaccess-0.14-1.el7.i686.rpm opencv-devel-2.4.5-3.el7.x86_64.rpm \
elfutils-libelf-0.176-5.el7.i686.rpm libXft-2.3.2-2.el7.i686.rpm libpng-1.5.13-8.el7.i686.rpm opencv-python-2.4.5-3.el7.x86_64.rpm \
elfutils-libs-0.176-5.el7.i686.rpm libXi-1.7.9-1.el7.i686.rpm libselinux-2.5-15.el7.i686.rpm openssl-libs-1.0.2k-22.el7_9.i686.rpm \
expat-2.1.0-12.el7.i686.rpm libXinerama-1.1.3-2.1.el7.i686.rpm libsepol-2.5-10.el7.i686.rpm orc-0.4.26-1.el7.i686.rpm \
fontconfig-2.13.0-4.3.el7.i686.rpm libXrandr-1.5.1-2.el7.i686.rpm libstdc++-4.8.5-44.el7.i686.rpm pam-1.1.8-23.el7.i686.rpm \
freetype-2.8-14.el7_9.1.i686.rpm libXrender-0.9.10-1.el7.i686.rpm libthai-0.1.14-9.el7.i686.rpm pango-1.42.4-4.el7_7.i686.rpm \
fribidi-1.0.2-1.el7_7.1.i686.rpm libXv-1.0.11-1.el7.i686.rpm libtheora-1.1.1-8.el7.i686.rpm pcre-8.32-17.el7.i686.rpm \
gdk-pixbuf2-2.36.12-3.el7.i686.rpm libXxf86vm-1.1.4-1.el7.i686.rpm libtiff-4.0.3-35.el7.i686.rpm pixman-0.34.0-1.el7.i686.rpm \
glib2-2.56.1-9.el7_9.i686.rpm libattr-2.4.46-13.el7.i686.rpm libuuid-2.23.2-65.el7_9.1.i686.rpm python-rpm-macros-3-34.el7.noarch.rpm \
glibc-2.17-325.el7_9.i686.rpm libblkid-2.23.2-65.el7_9.1.i686.rpm libv4l-0.9.5-4.el7.i686.rpm python3-devel-3.6.8-18.el7.x86_64.rpm \
graphite2-1.3.10-1.el7_3.i686.rpm libcap-2.22-11.el7.i686.rpm libverto-0.2.5-4.el7.i686.rpm python3-rpm-generators-6-2.el7.noarch.rpm \
gstreamer-0.10.36-7.el7.i686.rpm libcap-ng-0.7.5-4.el7.i686.rpm libvisual-0.4.0-16.el7.i686.rpm python3-rpm-macros-3-34.el7.noarch.rpm \
gstreamer-plugins-base-0.10.36-10.el7.i686.rpm libcom_err-1.42.9-19.el7.i686.rpm libvorbis-1.3.3-8.el7.1.i686.rpm systemd-libs-219-78.el7_9.3.i686.rpm \
gtk2-2.24.31-1.el7.i686.rpm libdb-5.3.21-25.el7.i686.rpm libwayland-client-1.15.0-1.el7.i686.rpm xz-libs-5.2.2-1.el7.i686.rpm \
harfbuzz-1.7.5-2.el7.i686.rpm libdrm-2.4.97-2.el7.i686.rpm libwayland-server-1.15.0-1.el7.i686.rpm zlib-1.2.7-19.el7_9.i686.rpm \
ilmbase-1.0.3-7.el7.i686.rpm libffi-3.0.13-19.el7.i686.rpm libxcb-1.13-1.el7.i686.rpm



pip 접속이 가능한 온라인 환경이라면 pip의 download 명령어로 필요한 파일을 다운로드 한다. whl 확장자로 다운로드 된다.

(일반계정)

 

pip 먼저 해야 함
$ pip3 download -d . pip==21.3.1 pip


$ pip3 download -d . setuptools
$ pip3 download -d . torch==1.9.0 torchvision==0.10.0 pyinstaller
$ pip3 download -d . fastapi==0.60.1 uvicorn==0.11.8 pillow requests numpy scikit-image scipy python-bidi pyyaml opencv-python



파일로 된 rpm 수동 설치 (root 로 설치)
$ yum install -y python-rpm-macros-3-34.el7.noarch.rpm python3-devel-3.6.8-18.el7.x86_64.rpm python3-rpm-generators-6-2.el7.noarch.rpm python3-rpm-macros-3-34.el7.noarch.rpm
$ yum install -y ./*.rpm


whl pip3 설치 (root으로 설치)

 

$ pip3 install --no-index -f . pip-21.3.1-py3-none-any.whl



whl 설치 (root)
$ pip3 install --no-index -f . *.whl




이슈
[pypy@d01bac38dce4 packages]$ pip3.6 install *
Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl is not a supported wheel on this platform.



pip3 버전 확인
로컬 (인터넷 되는곳)

 

[naya@localhost cpptest]$ pip3 --version
pip 21.3.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)


도커 (인터넷 안되는곳)
[pypy@d01bac38dce4 packages]$ pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

 

해결
pip 를 whl 파일로 추출 
$ pip3 download -d . pip==21.3.1 pip

pip whl 파일로 설치


$ pip3 install --no-index -f . pip-21.3.1-py3-none-any.whl
 
easyOCR 실행시 이슈
$ python3 server.py
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

 

해결

yumdownloader 로 rpm 다운로드 받은다음 설치

$ yumdownloader --resolve --destdir=. opencv opencv-devel opencv-python libffi-devel bzip2-devel

 

기타

도커 컨테이너 생성 및 실행 접속

--name 별칭
images repository  centos7_python3

$ docker run -it --name python3 centos7_python3 /bin/bash

도커 로컬파일 -> 컨테이너 복사 하는법

$ docker cp ./packages a4dca94bfae2:/usr/local/src