리눅스 환경에서 파이썬을 사용하다 보면 특정 버전을 사용해야 할 때가 있다.
나는 개인적으로 AWS 서비스를 자주 사용하다 보니 3.7
버전대의 파이썬을 자주 사용하게 되는데 리눅스 환경에서 가끔 설치되어있는 파이썬 버전이 3.6.9
라던지, 3.8
, 3.9
와 같이 상위 버전인 케이스가 있다. 이럴 때 3.7
버전을 설치하는데 귀찮은 상황이 자주 발생한다.
가장 쉽게 설치 할 수 있는 방법은 dead snake PPA
라는 패키지 저장소를 추가하여 설치하는 방법인데 방법은 다음과 같다.
$ sudo apt-get update
$ apt-get install software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt install python3.7
문제는 위와 같이 하였을 때 설치가 안되는 케이스가 가끔 있다는 점이다. (특히 라즈베리 파이나 뭔가 커스텀된 데비안 베이스 OS)
이럴 때 제일 쉬운 설치 방법은 wget
으로 파이썬 소스를 다운로드 받아 타겟 머신에서 빌드, 컴파일 후 설치하는 방법인데 일일이 타이핑 하기 귀찮은 경우가 많다.
따라서 스크립트를 만들어서 자주 활용중인데 이 스크립트를 공유하고자 한다.
#!/bin/bash
#파이썬 3.7.2 버전을 자동으로 설치하는 쉘 스크립트입니다.
#데비안 계열 리눅스 배포판에서 사용 가능합니다
echo "installing python3.7 start"
#set -e
apt-get update -y
if [ $? -ne 0 ]; then
echo "check your network"
else
echo "apt-get update sucess"
fi
apt-get upgrade -y
if [ $? -ne 0 ]; then
echo "check you env"
fi
#install dependencies to build python
apt-get install -y libffi-dev libbz2-dev liblzma-dev && \
apt-get install -y libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev && \
apt-get install -y libreadline-dev libssl-dev tk-dev build-essential && \
apt-get install -y libncursesw5-dev libc6-dev openssl git
if [ $? -ne 0 ]; then
echo "there is somethig missing dependencies to built Python !!"
exit 1
fi
set +e
PWD=$(pwd)
if [ ! -e $PWD/python_src ]; then
mkdir $PWD/python_src
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
tar xvf Python-3.7.2.tar.xz
mv Python-3.7.2 $PWD/python_src
else
echo "python_src exist !!"
fi
#for ssl modules delete "#"
sed -i "207s/#//g" $PWD/python_src/Python-3.7.2/Modules/Setup.dist
sed -i "211s/#//g" $PWD/python_src/Python-3.7.2/Modules/Setup.dist
sed -i "212s/#//g" $PWD/python_src/Python-3.7.2/Modules/Setup.dist
sed -i "213s/#//g" $PWD/python_src/Python-3.7.2/Modules/Setup.dist
sed -i "214s/#//g" $PWD/python_src/Python-3.7.2/Modules/Setup.dist
cd $PWD/python_src/Python-3.7.2/
sh configure
if [ $? -ne 0 ]; then
echo "fail configure"
exit 1
else
echo "python configure success !!"
fi
#we will use 4 cores to bulid Python
make -j 4
if [ $? -ne 0 ]; then
echo "fail make"
exit 1
else
echo "python make success !!"
fi
make install
if [ $? -ne 0 ]; then
echo "fail make install"
exit 1
else
echo "python make install success !!"
fi
위 스크립트를 복붙하여 install.sh
와 같은 이름으로 저장한 이후
sudo chmod +x insntall.sh
sudo ./install.sh
와 같이 사용하면 3.7.2
버전이 깔끔하게 설치 될 것이다.
위 코드는 github
에도 공유하였으므로, clone 해서 사용해도 무방하다.
git clone https://github.com/kimsehwan96/Auto-Install-python3.7.git
cd Auto-Install-python3.7
sudo chmod +x install.sh
sudo ./install.sh
위와 같이 설치하여도 된다.
깃헙 주소 : https://github.com/kimsehwan96/Auto-Install-python3.7.git