본문 바로가기

Study/Python

Pyenv offline (오프라인, 폐쇄망) 환경에서 사용하기


파이썬이 편하긴 하지만, 인터프리터 특성이여서인지 배포할때 매우 불편합니다

(물론 도커 자체로 이미지를 떠버려서 옮겨도 되지만, 만약 이렇게 하지 못할경우)


예를들면 Java의 경우는 jar나 War로 말아서 올려버리는데, 파이썬은 그렇게 하지 못하는게 문제입니다


더군다나, 서버환경이 python 2.6 (centos6 기준) 멍청한 환경을 만나버리면 다행이도 pyenv(https://github.com/pyenv/pyenv) 에서 오프라인으로 인스톨 할수 있는 방법을 제공합니다.


하지만, 잘 안보이는것 같아서 블로그에 정리해봅니다. (저 같은경우 이 방법으로 패키지와 스크립트로 만들어서 배포가 되게 만든) 다음 설명은 Python 2.7.14(3버전도 아니고 2.6환경에서 2.7.14 환경을 구성하는것을 목표로 합니다)


1.

먼저 파이썬을 컴파일해서 깔던, pyenv 를 하던 컴파일을 하는 절차를 가지게 됩니다. centos 기준으로 다음 패키지들이 yum 으로 설치되어 있는지 확인합니다

yum groupinstall "Development Tools"
yum install openssl-devel bzip2-devel readline-devel sqlite-devel


2. pyenv-installer, pyenv-package.tar.gz 준비 


git clone https://github.com/pyenv/pyenv-installer

#bin 폴더 안에보면 download-pyenv-package.sh, pyenv-installer,pyenv-offline-installer 가 있습니다


여기서 ./donwnload-pyenv-pakcage.sh를 실행해서  pyenv-package.tar.gz


그러면 bin 폴더안에 download-pyenv-package.sh, pyenv-installer,pyenv-offline-installer, pyenv-package.tar.gz 총 4개의 폴더가 생성이 됩니다.

3. 원하는 Python 버전 준비 


https://www.python.org/downloads/ 에서 필요한 파이선 소스코드를 다운받습니다 (Python-2.7.14.tar.xz)


4. 오프라인, 폐쇠망 환경



1.pyenv 설치

2번에서 받은 파일을 압축해서 오프라인 또는 폐쇄망 환경으로 복사합니다


그리고 ./pyenv-offline-installer를 설치하면 $HOME/.pyenv 에 폴더가 생성이 됩니다.

그다음 쉘에 다음을 입력하면 쉘상에서 pyenv 환경을 사용하실수 있습니다

echo 'export PATH="'$HOME'/.pyenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
2. ~/.pyenv/sources/원하는 버전 폴더 생성
mkdir ~/.pyenv/sources/2.7.14 -p

3.파이썬 ~/.pyenv/sources/2.7.14 (원하는 버전으로 복사)


4.pyenv install -k -v 2.7.14


다음과 같이 명령을 하면 pyenv에 2.7.14가 컴파일되어 설치됩니다.


이번 포스트는 오프라인 또는 폐쇄망 환경에서 pyenv 를 설치하는 방법을 설명하였습니다. 

다음장에서는 virtualenv 와 autoenv를 설정하는것을 포스팅 하겠습니다