우분투/라즈비안(라즈베리파이)에서 Python 3.7 쉽게 설치하는 스크립트

김세환·2021년 7월 17일
3

파이썬 3.7.2 설치 스크립트

리눅스 환경에서 파이썬을 사용하다 보면 특정 버전을 사용해야 할 때가 있다.

나는 개인적으로 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 해서 사용해도 무방하다.

  1. git clone https://github.com/kimsehwan96/Auto-Install-python3.7.git
  2. cd Auto-Install-python3.7
  3. sudo chmod +x install.sh
  4. sudo ./install.sh

위와 같이 설치하여도 된다.

깃헙 주소 : https://github.com/kimsehwan96/Auto-Install-python3.7.git

profile
DevOps 엔지니어로 핀테크 회사에서 일하고있습니다. 아직 많이 부족합니다.

0개의 댓글