본문 바로가기
개발/리눅스

Centos6에서 Python 3.4 설치

by ㅣ푸른하늘ㅣ 2019. 1. 15.
반응형

출처 : https://lunatine.net/2015/01/21/python27-34-on-rhel-centos/


RHEL6에서 Python 3.4 사용하기

본 문서는 RHEL6에서 Python 3.4를 사용하기 위해 추천하는 방법을 안내하고 있다. 

비단, RHEL6 뿐만 아니라 CentOS6와 RHEL5, CentOS5에도 적용이 가능하다.


Python 2.6

RHEL6에는 기본적으로 python 2.6 버전이 탑재되어 있다. 그리고 OS를 구성하는 많은 패키지들이 이 버전에 기초하여 의존성을 갖고 있다. 보통 이런 환경에서 python 2.7을 사용하기 위해서 별도로 python 2.7을 다운로드 받아 설치한다. 다만, 그냥 설치하다보니 OS 기본 python의 실행경로나 라이브러리 참조 경로를 변경해버려서 OS가 기본적으로 (python 2.6에 의존하여) 제공하는 많은 서비스 패키지가 제대로 동작하지 않는 문제가 발생한다.


제안하는 방법

OS가 기본적으로 가지고 있는 python은 그대로 둔다.

절대 덮어씌우거나 심볼릭 링크를 고치거나 하지 않는다.

python은 별도로 설치하는 옵션을 이미 가지고 있다.

python 3.4 환경으로 프로그램을 작성하거나 구동 할 때 virtualenv를 활용한다.

Python 설치

자, 이제 python 3.4.2를 설치해 보자.


사전준비

빌드를 위해서 개발 관련 패키지가 모두 설치되어 있어야 한다

추가로 자주 사용되는 라이브러리의 개발 패키지도 필요하다

$ yum -y groupinstall 'Development tools'

$ yum -y install openssl-devel bzip2-devel sqlite-devel zlib-devel


패키지 다운로드

python 패키지를 다운로드 받는다

xz 파일을 다루기 위해서는 'xz-libs'를 설치한다

tgz(tar+gzip)은 보통 기본 설치에 포함된다


[xz 파일의 경우]

# 3.4.2

$ wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tar.xz

$ tar Jxvf Python-3.4.2.tar.xz


[tgz 파일의 경우]

# 3.4.2

$ wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz

$ tar zxvf Python-3.4.2.tgz


압축을 해제하면 디렉토리가 생생되고 해당 디렉토리에 들어가서 설정을 한다

반드시 /usr/local 일 필요는 없으니 원하는 경로로 사용한다

UTF-32 지원 등 부가적인 옵션은 기호에 따라 추가한다


# 3.4.2

$ cd Python-3.4.2/

$ ./configure --prefix=/usr/local --enable-shared


빌드 그리고 설치

설정 된 패키지를 빌드하고 설치한다

반드시 altinstall로 설치한다

$ make && make altinstall


멀티코어 프로세스를 사용한다면 -j 옵션으로 동시작업 개수를 지정해서 컴파일 시간을 단축 할 수 있다. (아래는 4개로 지정)

$ make -j 4 && make altinstall


설치 확인

설치가 완료되면 아래 경로에 python3.4 바이너리가 존재 한다


$ ls -l /usr/local/bin/python*

-rwxr-xr-x 2 root root 12650 Jan 21 14:40 /usr/local/bin/python3.4

-rwxr-xr-x 2 root root 12650 Jan 21 14:40 /usr/local/bin/python3.4m

-rwxr-xr-x 1 root root  3011 Jan 21 14:40 /usr/local/bin/python3.4m-config


Shared Library로 설치했기 때문에 /etc/ld.so.conf.d/에 아래와 같은 설정을 추가해 주고 적용한다


$ vi /etc/ld.so.conf.d/python.conf

/usr/local/lib


$ ldconfig -v | grep libpython


libpython3.so -> libpython3.so

libpython3.4m.so.1.0 -> libpython3.4m.so.1.0

libpython2.6.so.1.0 -> libpython2.6.so.1.0



사용하기

앞서 설치한 python 3.4.2 버전을 실행하는데 문제는 없지만 python 환경에서 개발 할 때 라이브러리 관리의 편의성을 위해서 추가적인 작업을 해주도록 한다.


setuptools & pip

라이브러리를 설치하거나 패키징할 때 유용한 setuptools와 pip를 설치하도록 한다. 2.7.9 기준이며 3.4.2의 경우에는 기본 패키지에 번들로 들어 있다. 별도로 설치하고자 할 경우에는 실행 파일을 python3.4로 실행해주면 된다.


# https 접속이기 때문에 certificate 체크를 건너뛰는 옵션을 줬다

$ wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.4.tar.gz


# 압축을 풀고 python3.4로 설치를 한다

$ tar zxvf setuptools-12.0.4.tar.gz

$ cd setuptools-12.0.4

$ python3.4 setup.py install


# pip 다운로드

$ wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-6.0.6.tar.gz


# setuptools와 마찬가지로 설치

$ tar zxvf pip-6.0.6.tar.gz

$ cd pip-6.0.6

$ python3.4 setup.py install


# /usr/local/bin에 pip가 추가되어있다. 기존에 OS python에서 사용하던 pip가 있다면 pip3.4로 실행하는 편이 명확하고 좋다.


virtualenv

독립적인 python 개발 및 구동 환경을 갖기 위해서는 virtualenv를 설치해서 사용하는 것을 추천하기 때문에 virtualenv도 설치한다. 앞서 pip를 설치 했기 때문에 pip로 간단하게 설치하도록 한다


$ pip3.4 install virtualenv

python3.4에는 virtualenv가 pyvenv로 내장되어 있다.


virtualenv 환경구축

virtualenv까지 설치했기 때문에 내가 원하는 python버전에 따라서 환경을 구축하고 필요한 패키지들을 설치하는 형태로 사용하면 된다.


virtualenv를 사용하면 좋은 점이 개발/테스트/작업 등을 수행 할 때 설치하는 패키지가 시스템에 설치 된 패키지에 영향을 주지 않으며 일반 사용자가 얼마든지 원하는 패키지를 추가 할 수 있고 복잡한(?) PYTHONPATH를 고려하지 않아도 된다.


참고로, virtualenv로 생성한 환경의 bin 디렉토리를 보면 pip, easy_install이 기본으로 포함된다.


$ pyvenv-3.4 p34env


# 기본 python 버전 확인

$ python --version

Python 2.6.6


# p34env 환경 적용 (기존 환경을 먼저 비활성화 한다)

$ deactivate

$ . p34env/bin/activate

(p34env)$ python --version

Python 3.4.2

반응형

'개발 > 리눅스' 카테고리의 다른 글

리눅스 FFMPEG 설치  (0) 2019.02.01
리눅스 Node.js 설치  (0) 2019.02.01
cat 명령어  (0) 2018.01.11
rm 명령어  (0) 2018.01.11
tar 명령어  (0) 2018.01.11