본문 바로가기
IT/Data Analysis

[python 라이브러리 세팅] 내부망에 넣을 라이브러리 준비 (1) - python 3.6.8 설치

by 한동두 2025. 9. 24.
반응형

환경

os: Linux, CentOS7

python: 3.6.8


1. VM 준비

내부망에 넣을 라이브러리를 준비하기 위해 VM을 설치한다.

vm 설치 및 os설치는 아래 링크를 참고하여 준비한다.

(ISO준비 : https://dongdu-blog.tistory.com/57 )

(vm 설치 : https://dongdu-blog.tistory.com/61 )

 

vm에서 라이브러리를 설치하고 해당 라이브러리 설치 파일을 내 pc로 뽑아내서 내부망에 설치할 수 있도록 준비 할 것이다.

 

 

2. yum 재설정

yum을 이용해서 원하는 python버전을 설치해야한다.

하지만 CentOS 7은 현재 지원이 종료된 버전이다. 그래서 최신버전 프로그램들이 설치가 안될 것이다.

미러링 사이트까지도 막혔기 때문이다..

 

https://developer-woong.tistory.com/112#google_vignette 블로그를 참고하여 설정해주자.

 

1. su - 를 이용하여 슈퍼유저 계정으로 접속한다.

2. cd /etc/yum.repos.d/ 로 이동

3. vi CentOS-Base.repo

4. mirrorlist에 주석 치고 새로운 baseurl을 추가해준다.

[base]
baseurl=http://centos.mirror.cdnetworks.com/7/os/x86_64

[updates]
baseurl=http://centos.mirror.cdnetworks.com/7/updates/x86_64

[extras]
baseurl=http://centos.mirror.cdnetworks.com/7/extras/x86_64

[centosplus]
baseurl=http://centos.mirror.cdnetworks.com/7/centosplus/x86_64

기존 -> basesurl 추가

5. wq로 저장하고 빠져나온다

6. yum clean all 으로 적용시켜준다.

 

3. Python3.6.8 설치

에러가 나는 구 baseurl을 바꿔주었지만 

파이썬 라이브러리를 추가하기 위해서 centos.mirror 만으로는 부족하다.

centos.mirror는 리눅스 시스템에서 필요한 os 기본 패키지들이 있는 편이라서 (운영체제와 서버용 프로그램들 위주)

EPEL이나 IUS를 설치해줘야한다.

EPEL이나 IUS는 패키지가 모여있는 repository라고 생각하면 된다.

 

원래 yum install -y https://repo.ius.io/ius-release-el7.rpm 하면 쉽게 python3.6버전 다운로드가 가능했었는데 막힌듯 하다.

막힌듯.

 

vault.ius.io

vault.ius.io로 가보니 25년 8월 18일 자로 패키지가 세팅 된거 보니 진짜 얼마전에 이동된 듯 하다..

그래서 변경된 ISU를 사용해보려고 했는데,

 

yum install -y https://vault.ius.io/el7/x86_64/packages/i/ius-release-2-1.el7.ius.noarch.rpm

yum list available python36*

를 해보았으나 

failure: repodata/repomd.xml from ius: [Errno 256] No more mirrors to try.
https://repo.ius.io/7/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found

라고 뜬다. 자꾸 변경되기 전의 ius쪽으로 붙는것 같다.(url이 vault가 아님)

 

원래라면 ius로 바로  python36 깔수가 있었는데 ius 폐쇄로 인해 의존성을 고려해 가며 순차적으로  rpm파일로 설치해야 할 것으로 보인다.

따라서 그냥 강제로 vault에서 python36을 골라서 다운받아줄 것이다.

 

1. cd /home/유저명/Downloads

2. python rpm다운로드

wget https://vault.ius.io/el7/x86_64/packages/p/python36u-libs-3.6.8-1.el7.ius.x86_64.rpm

3.6.8버전 lib 다운로드 (의존성 떄문에 먼저 설치해야함.)

[root@localhost Downloads]# wget https://vault.ius.io/el7/x86_64/packages/p/python36u-libs-3.6.8-1.el7.ius.x86_64.rpm
--2025-09-22 01:54:41--  https://vault.ius.io/el7/x86_64/packages/p/python36u-libs-3.6.8-1.el7.ius.x86_64.rpm
Resolving vault.ius.io (vault.ius.io)... 184.27.174.74, 2600:140b:2c00:b92::3a15, 2600:140b:2c00:b89::3a15
Connecting to vault.ius.io (vault.ius.io)|184.27.174.74|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9306448 (8.9M) [application/octet-stream]
Saving to: ‘python36u-libs-3.6.8-1.el7.ius.x86_64.rpm’

100%[==========================================>] 9,306,448   7.49MB/s   in 1.2s   

2025-09-22 01:54:45 (7.49 MB/s) - ‘python36u-libs-3.6.8-1.el7.ius.x86_64.rpm’ saved [9306448/9306448]

 

 

3. python을 위한 의존성 lib 다운로드

wget https://vault.ius.io/el7/x86_64/packages/p/python36-3.6.8-2.el7.ius.x86_64.rpm

python3.6.8 다운로드

[root@localhost Downloads]# wget https://vault.ius.io/el7/x86_64/packages/p/python36u-3.6.8-1.el7.ius.x86_64.rpm
--2025-09-22 01:58:19--  https://vault.ius.io/el7/x86_64/packages/p/python36u-3.6.8-1.el7.ius.x86_64.rpm
Resolving vault.ius.io (vault.ius.io)... 23.38.15.201, 2600:140b:2c00:b89::3a15, 2600:140b:2c00:b92::3a15
Connecting to vault.ius.io (vault.ius.io)|23.38.15.201|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 59388 (58K) [application/octet-stream]
Saving to: ‘python36u-3.6.8-1.el7.ius.x86_64.rpm’

100%[==========================================>] 59,388      --.-K/s   in 0.06s   

2025-09-22 01:58:19 (951 KB/s) - ‘python36u-3.6.8-1.el7.ius.x86_64.rpm’ saved [59388/59388]

 

4. 다운받은 rpm 설치

[root@localhost Downloads]# rpm -ivh python36u-libs-3.6.8-1.el7.ius.x86_64.rpm python36u-3.6.8-1.el7.ius.x86_64.rpm

따로 설치하니까 서로간에 의존성 문제가 나서 둘을 동시에 설치해준다.

[root@localhost Downloads]# ll
total 9152
-rw-r--r--. 1 root root   59388 Aug 17 17:49 python36u-3.6.8-1.el7.ius.x86_64.rpm
-rw-r--r--. 1 root root 9306448 Aug 17 17:49 python36u-libs-3.6.8-1.el7.ius.x86_64.rpm

[root@localhost Downloads]# rpm -ivh python36u-libs-3.6.8-1.el7.ius.x86_64.rpm python36u-3.6.8-1.el7.ius.x86_64.rpm 
warning: python36u-libs-3.6.8-1.el7.ius.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 4b274df2: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:python36u-3.6.8-1.el7.ius        ################################# [ 50%]
   2:python36u-libs-3.6.8-1.el7.ius   ################################# [100%]

 

5. 추가로 필요한 pip3도 설치

wget  https://vault.ius.io/el7/x86_64/packages/p/python36u-pip-9.0.1-1.ius.el7.noarch.rpm

3.6버전 pip 다운로드

[root@localhost Downloads]# wget https://vault.ius.io/el7/x86_64/packages/p/python36u-pip-9.0.1-1.ius.el7.noarch.rpm
--2025-09-23 17:42:17--  https://vault.ius.io/el7/x86_64/packages/p/python36u-pip-9.0.1-1.ius.el7.noarch.rpm
Resolving vault.ius.io (vault.ius.io)... 23.38.15.201, 2600:140b:2:198::3a15, 2600:140b:2:18f::3a15
Connecting to vault.ius.io (vault.ius.io)|23.38.15.201|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1842484 (1.8M) [application/octet-stream]
Saving to: ‘python36u-pip-9.0.1-1.ius.el7.noarch.rpm’

100%[=============================================>] 1,842,484   2.39MB/s   in 0.7s   

2025-09-23 17:42:20 (2.39 MB/s) - ‘python36u-pip-9.0.1-1.ius.el7.noarch.rpm’ saved [1842484/1842484]

 

6. pip을 위한 setuptoos도 같이 다운로드

wget https://vault.ius.io/el7/x86_64/packages/p/python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm

setuptools

[root@localhost Downloads]# wget https://vault.ius.io/el7/x86_64/packages/p/python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm
--2025-09-23 17:46:02--  https://vault.ius.io/el7/x86_64/packages/p/python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm
Resolving vault.ius.io (vault.ius.io)... 184.27.174.74, 2600:140b:2:18f::3a15, 2600:140b:2:198::3a15
Connecting to vault.ius.io (vault.ius.io)|184.27.174.74|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 658936 (643K) [application/octet-stream]
Saving to: ‘python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm’

100%[=============================================>] 658,936     1.15MB/s   in 0.5s   

2025-09-23 17:46:04 (1.15 MB/s) - ‘python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm’ saved [658936/658936]

 

그리고 rpm 설치까지 진행.

[root@localhost Downloads]# rpm -ivh python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm python36u-pip-9.0.1-1.ius.el7.noarch.rpm 
warning: python36u-setuptools-39.0.1-1.ius.el7.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 4b274df2: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:python36u-setuptools-39.0.1-1.ius################################# [ 50%]
   2:python36u-pip-9.0.1-1.ius.el7    ################################# [100%]

이 역시 따로 설치하면 의존성 문제 나기 때문에 동시에 설치해준다.

 

7. python3.6.8 설치 확인

[root@localhost bin]# which python
/bin/python

/bin 으로 이동

(설치 전)

(설치 후)

 

python3.6관련해서 설치가 된 것을 볼 수 있고 (위치 : /bin)

[root@localhost bin]# python3.6 --version
Python 3.6.8

이렇게 설치된 것을 확인 할 수 있다!

 

8. python3 심볼릭 링크 생성

[root@localhost bin]# python3 --version
bash: python3: command not found...
Similar command is: 'python'

이렇게 바로 python3으로 3.6.8을 사용할 수 없으므로.. 링크를 연결해주어야 한다.

기존에 python3으로 연결 된 것이 없으므로 바로 연결해주면 되므로 링크꼬임에 대해서 크게 고민하지 않아도 된다.

(만약 기존에 python3 링크가 있다면 꼬일 수 있음)

 

/bin 은 /usr/bin의 심볼릭 링크이기 때문에  /usr/bin 으로 이동해서 등록해주자.

[root@localhost bin]# ls -ld /bin
lrwxrwxrwx. 1 root root 7 Sep 22 00:42 /bin -> usr/bin

[root@localhost bin]# cd /usr/bin

#심볼릭링크 등록
[root@localhost bin]# ln -s /usr/bin/python3.6 /bin/python3

[root@localhost bin]# ll python*
lrwxrwxrwx. 1 root root     7 Sep 22 00:44 python -> python2
lrwxrwxrwx. 1 root root     9 Sep 22 00:44 python2 -> python2.7
-rwxr-xr-x. 1 root root  7144 Oct 14  2020 python2.7
lrwxrwxrwx. 1 root root    18 Sep 23 18:45 python3 -> /usr/bin/python3.6
-rwxr-xr-x. 2 root root 11384 May  2  2019 python3.6
-rwxr-xr-x. 2 root root 11384 May  2  2019 python3.6m

[root@localhost bin]# python3 --version
Python 3.6.8

이렇게하면 python 3.6.8 버전을 python3으로 간단하게 사용할 수 있다!

 

 

 

원래 한번에 다 적으려고 했는데
내가 작업했을 때랑 python설치하는 방법이 바뀌어서 나누어서 작성하게 되었다.

다음 게시글에는 내부망 설치용 lib을 whl 파일로 만들어 준비하는 방법에 대해서 설명하도록 하겠다.

 

반응형