Python 3 설치 전 준비 작업
리눅스 서버에 Python 3를 소스 코드로부터 직접 컴파일하여 설치하려면 먼저 필요한 개발 도구와 라이브러리를 설치해야 합니다. 이 과정을 생략하면 컴파일 중 오류가 발생할 수 있습니다.
필수 개발 패키지 설치
CentOS 또는 RHEL 계열 시스템에서는 yum을 사용해 기본 개발 툴셋과 의존성 패키지를 설치합니다.
yum groupinstall "Development Tools" -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel -y
위 명령어는 컴파일에 필요한 헤더 파일들과 라이브러리들을 함께 설치합니다.
Python 3.5.6 소스 다운로드 및 컴파일
공식 Python 아카이브에서 원하는 버전의 소스 압축 파일을 내려받습니다.
wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz
압축을 풀고 디렉터리로 이동합니다.
tar -zxvf Python-3.5.6.tgz
cd Python-3.5.6
설치 경로 지정 후 빌드
사용자 지정 경로에 설치하기 위해 --prefix 옵션을 사용합니다. 이 예제에서는 /usr/local/python3를 기준으로 합니다.
./configure --prefix=/usr/local/python3
make && make altinstall
make altinstall을 사용하는 이유는 기존 시스템의 Python 2.x와 충돌하지 않도록 하기 위함입니다. make install은 기본적으로 python 명령어를 덮어쓸 수 있으므로 주의가 필요합니다.
실행 명령어 등록: 심볼릭 링크 생성
새롭게 설치된 Python 3.5.6을 쉘에서 바로 호출할 수 있도록 심볼릭 링크를 만듭니다.
ln -s /usr/local/python3/bin/python3.5 /usr/bin/python3
이후 터미널에서 python3 명령어로 접근이 가능해집니다.
pip3 설치하기
Python 3 설치 후에는 패키지 관리자인 pip도 함께 설치해야 합니다. 하지만 이번 설치에서는 자동으로 포함되지 않을 수 있으므로 수동으로 설정합니다.
1단계: setuptools 설치
pip를 설치하기 전에 먼저 setuptools가 필요합니다.
wget --no-check-certificate https://pypi.org/packages/source/s/setuptools/setuptools-19.6.tar.gz
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install
2단계: pip-8.0.2 설치
이제 pip 소스를 다운로드하고 설치합니다.
wget --no-check-certificate https://pypi.org/packages/source/p/pip/pip-8.0.2.tar.gz
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3 setup.py build
python3 setup.py install
pip 명령어 링크 설정
설치 후, 시스템 어디서나 pip3 명령어를 사용할 수 있도록 링크를 걸어줍니다.
ln -s /usr/local/python3/bin/pip3.5 /usr/bin/pip3
기존에 Python 2용 pip가 존재할 경우 충돌을 피하기 위해 pip 대신 pip3로 명명하는 것이 안전합니다.
자주 발생하는 문제 및 해결 방법
오류 1: gcc 미설치
컴파일 도중 다음과 같은 오류가 발생할 수 있습니다.
Unable to find command 'gcc'
이 경우 GCC 컴파일러가 설치되어 있지 않은 것이므로 아래 명령어로 설치합니다.
yum install -y gcc
오류 2: 심볼릭 링크 생성 실패
기존에 /usr/bin/pip가 존재할 경우 다음 오류가 발생할 수 있습니다.
ln: failed to create symbolic link '/usr/bin/pip': File exists
이 경우 기존 파일을 덮어쓰지 않고 pip3라는 별도 이름으로 링크를 생성하는 것이 좋습니다.
pip 최신 버전으로 업그레이드
설치 후 pip를 최신 상태로 유지하기 위해 다음 명령어를 실행합니다.
pip3 install --upgrade pip
이렇게 하면 최신 버전의 pip로 업데이트되어 보안 및 기능 측면에서 더 안정적입니다.