본문 바로가기
OS/Linux

[Linux] CentOS7.4 버전에서 Python 3.10.14 설치 및 Troubleshooting 매뉴얼

by Yoon_estar 2025. 2. 16.
728x90

🚀 개요

본 문서는 Python 3.10.14을 소스 컴파일을 통해 설치하면서 겪었던 문제와 해결 방법을 정리한 매뉴얼입니다. 수동 설치 과정에서 발생할 수 있는 오류와 그에 따른 해결 방법을 상세히 기록했습니다.

 

💡 1. 사전 준비

필수 패키지 설치(외부망이 되는 경우)

# sudo yum groupinstall "Development Tools" -y
# sudo yum install gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
    openssl-devel libffi-devel xz-devel tk-devel gdbm-devel db4-devel libpcap-devel expat-devel -y

필수 패키지 설치(외부망이 안 되는 경우)

1. GCC & MAKE 설치

!! GMP 설치
# wget https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz
# tar -xf gmp-6.3.0.tar.xz
# cd gmp-6.3.0
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

!! MPFR 설치
# wget https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.1.tar.xz
# tar -xf mpfr-4.2.1.tar.xz
# cd mpfr-4.2.1
# ./configure --prefix=/usr/local --with-gmp=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

!! MPC 설치
# wget https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz
# tar -xzf mpc-1.3.1.tar.gz
# cd mpc-1.3.1
# ./configure --prefix=/usr/local --with-gmp=/usr/local --with-mpfr=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

!! GCC 설치
# wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
# tar -xf gcc-13.2.0.tar.xz
# cd gcc-13.2.0
# ./configure --prefix=/usr/local --enable-languages=c,c++
# make -j$(nproc)
# sudo make install
# cd ..

2. zlib 설치

# wget https://zlib.net/zlib-1.3.1.tar.gz
# tar -xzf zlib-1.3.1.tar.gz
# cd zlib-1.3.1
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

3. bzip2 설치

# wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
# tar -xzf bzip2-1.0.8.tar.gz
# cd bzip2-1.0.8
# make -f Makefile-libbz2_so
# make clean
# make -j$(nproc)
# sudo make install PREFIX=/usr/local
# cd ..

4. readline 설치

# wget https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz
# tar -xzf readline-8.2.tar.gz
# cd readline-8.2
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

5. SQLite 설치

# wget https://www.sqlite.org/2025/sqlite-autoconf-3480000.tar.gz
# tar -zxvf sqlite-autoconf-3480000.tar.gz
# cd sqlite-autoconf-3440100
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

6. OpenSSL 설치

# wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
# tar -xzf openssl-1.1.1w.tar.gz
# cd openssl-1.1.1w
# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
# make -j$(nproc)
# sudo make install
# cd ..

환경 변수 설정
# export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
# export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig

7. libffi 설치

# wget https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz
# tar -xzf libffi-3.4.4.tar.gz
# cd libffi-3.4.4
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

8. xz 설치

# wget https://tukaani.org/xz/xz-5.4.4.tar.gz
# tar -xzf xz-5.4.4.tar.gz
# cd xz-5.4.4
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..
# wget https://github.com/libexpat/libexpat/releases/download/R_2_6_1/expat-2.6.1.tar.gz
# tar -xzf expat-2.6.1.tar.gz
# cd expat-2.6.1
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

9. tk 설치

# wget https://prdownloads.sourceforge.net/tcl/tk8.6.13-src.tar.gz
# tar -xzf tk8.6.13-src.tar.gz
# cd tk8.6.13/unix
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ../..

10. gdbm 설치

# wget https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz
# tar -xzf gdbm-1.23.tar.gz
# cd gdbm-1.23
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

11. expat 설치

# wget https://github.com/libexpat/libexpat/releases/download/R_2_6_1/expat-2.6.1.tar.gz
# tar -xzf expat-2.6.1.tar.gz
# cd expat-2.6.1
# ./configure --prefix=/usr/local
# make -j$(nproc)
# sudo make install
# cd ..

 

 

🚧 2. Python 소스 컴파일 및 설치

다운로드 및 압축 해제

# wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tar.xz
# tar -xf Python-3.10.14.tar.xz
# cd Python-3.10.14

 

환경 변수 설정

# export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/openssl/lib:$LD_LIBRARY_PATH
# export CPPFLAGS="-I/usr/local/include -I/usr/local/openssl/include"
# export LDFLAGS="-L/usr/local/lib -L/usr/local/openssl/lib"

 

 

컴파일 및 설치 

# ./configure --prefix=/APP/enhpc/python/v3.10.14 --with-openssl=/usr/local/openssl --enable-optimizations
# make -j$(nproc)
# sudo make altinstall

 


 

🌟 3. Troubleshooting

3.1 OpenSSL 관련 오류

오류 메시지

./python: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

 

해결방법

# sudo ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
# sudo ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# sudo ldconfig

 

3.2 encodings 모듈 오류

오류 메시지

ModuleNotFoundError: No module named 'encodings'

 

해결방법

# export PYTHONHOME=/APP/enhpc/python/v3.10.14
# export PYTHONPATH=/APP/enhpc/python/v3.10.14/lib/python3.10

 

경로 확인

# /usr/local/python3/bin/python3.10 -c "import sys; print(sys.path)"

 

파이썬 적용 profile 스크립트(환경변수 적용)

# cat /APP/enhpc/profile.d/python-v3.10.14
------------------------------------------------------------------
#!/bin/bash
export PYTHONHOME=/APP/enhpc/python/v3.10.14
export PYTHONPATH=/APP/enhpc/python/v3.10.14/lib/python3.10
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
export PATH=/APP/enhpc/python/v3.10.14/bin:$PATH

 

3.3 generate-posix-vars 실패

오류 메시지

generate-posix-vars failed

 

해결방법

# make clean
# ./configure --prefix=/APP/enhpc/python/v3.10.14 --with-openssl=/usr/local/openssl
# make -j$(nproc)
# sudo make altinstall

 

3.4 Version Err

위의 모든 err log들은 버전에 관련한 에러 로그이다. 일단 현재 버전으로 진행하고 다음에 OS에 맞게 버전을 낮추니 추가로 설치한 rpm 등 파일은 없었다. 

새로 설치 시도한 버전은 아래와 같다.

메뉴얼을 참고하여 버전만 다운 그레이드해서 설치한다면 무난히 설치가 될 것이다.

Server OS : CentOS 7.4
Python : 3.8.12
postgreSQL : 13.18
airflow : 2.4.3

📖 4. 설치 확인

# python3.10 --version
# python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)"
# pip3.10 --list

 

# vi /APP/enhpc/profile.d/python-v3.10.14
---------------------------------------------------------------
# 내용 추가
export PYTHONHOME=/APP/enhpc/python/v3.10.14
export PYTHONPATH=/APP/enhpc/python/v3.10.14/lib/python3.10
export PATH=/APP/enhpc/python/v3.10.14/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH

-----------------------------------------------------------------


!! 적용
# source /APP/enhpc/profile.d/python-v3.10.14

 

명령어 link

# ln -sf /APP/enhpc/python/v3.10.14/bin/pip3.10 /APP/enhpc/python/v3.10.14/bin/pip
# ln -sf /APP/enhpc/python/v3.10.14/bin/python3.10 /APP/enhpc/python/v3.10.14/bin/python