JUINTINATION

AWS Ubuntu 22.04 LTS EC2 파이썬 버전 변경하기 본문

Amazon Web Services

AWS Ubuntu 22.04 LTS EC2 파이썬 버전 변경하기

DEOKJAE KWON 2024. 10. 26. 23:18
반응형

이번에 종설 준비를 하면서 이미지 스티칭 서버를 이것 저것 해보면서 배포 관련 테스트를 진행중이었다. 지금까지 Flask로 구현된 서버가 AWS로 올라가 있었는데 관련 정보가 너무 부족해서 결국 Elastic Beanstalk으로 올리는 것을 실패했었다. 그래서 FastAPI로 다시 구현하고 재도전해봤는데 똑같은 오류가 발생했다. 이 과정에서 기존의 인스턴스를 비롯한 관련 설정들을 모두 삭제한 상태였는데, 이를 다시 처음부터 설정을 해야했다.

파이썬 버전 문제

처음 Amazon Ec2 시작하기 글을 작성했을 때와 같은 방법으로 인스턴스를 다시 만들었을 때 파이썬 버전은 3.12였나 아무튼 필요한 파이썬 버전인 3.8 버전과 맞지 않았다. 그래서 파이썬 버전을 바꾸려고 이것 저것 해봤는데 결론적으로 기본적인 방법으론 설치가 불가능했다. 그래서 여러 블로그들을 돌아다니면서 인스턴스를 3번정도 지웠다가 다시 만들면서 생각보다 오래 삽질을 계속하게 되었다.

Ubuntu 22.04 LTS에 Python 3.8 설치

먼저 다음 명령어를 통해 시스템의 패키지 목록을 새로고침하고, 설치된 패키지를 업데이트한다.

$ sudo apt update && sudo apt upgrade

이후 다음 명령어를 통해 software-properties-common 패키지를 설치하고, deadsnakes PPA를 시스템의 소프트웨어 소스에 추가한다.

$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa

그리고 다음 명령어로 python3.8 패키지의 설치 가능한 버전과 현재 설치된 버전(있는 경우)에 대한 정보를 표시하고, 있다면 설치한다.

$ sudo apt-cache policy python3.8
$ sudo apt install python3.8

참고한 블로그는 아래와 같다.

 

Ubuntu 22.04 LTS에 Python 3.8 or 3.9 설치 방법 – make BCT

회사 도메인으로 무료 메일 만드는 방법에는 네이버, 다음, 구글 메일서버를 이용하는 방법이 있었는데, 근래 네이버, 구글의 ㄱㅇ우 유료 서비스로 전환되어 현재는 Daum 스마트워크를...

makebct.net

python3 설정하기

이후 다음 명령어로 /usr/bin 디렉토리에 있는 모든 Python 3 관련 실행 파일의 상세 정보를 표시하면 아래와 같이 화살표로 python3가 python3.12로 symbolic link 되어 있는 것을 확인할 수 있다.

$ ls -al /usr/bin/python3*

그렇다면 다음 명령어로 python3가 방금 설치한 python3.8로 symbolic link 되도록 한 뒤 다시 이전 명령어로 확인해보면 아래와 같이 화살표로 python3가 python3.8로 symbolic link 되어 있는 것을 확인할 수 있다.

$ sudo ln -fs /usr/bin/python3.8 /usr/bin/python3

참고한 블로그는 아래와 같다.

 

[EC2] EC2 인스턴스에 python3 세팅하기

EC2에 python3 세팅하기1. 우선 python 세팅을 할 EC2 인스턴스를 생성한 후 SSH로 접속을 해줍니다.2. 접속 후 apt를 업데이트하고 build-essential을 설치합니다.sudo apt updatesudo apt install build-essential -y3. 설치

leehah0908.tistory.com

pip 설치하기

이후 $ pip --version 혹은 $ pip3 --version 명령어를 실행시켜보면 설치가 되어 있지 않기 때문에 다음 명령어로 pip를 설치한다.

$ sudo apt install python3-pip

하지만 이후 다시 $ pip -- version 명령어를 실행시켜보면 아래와 같이 ModuleNotFoundError: No module named 'distutils.cmd' 에러가 뜰 것이다.

그러면 다음 명령어로 Python 3.8용 distutils 패키지를 설치한다.

$ sudo apt-get install python3.8-distutils -y

그러면 아래와 같이 정상적으로 pip의 버전이 뜨는 것을 확인할 수 있다.

참고한 블로그는 아래와 같다.

 

ModuleNotFoundError: No module named 'distutils.cmd'

이전 글에서 파이썬 버전을 새로 설치했습니다. E: Package 'python' has no installation candidate AWS의 EC2 인스턴스를 t2에서 g4로 업그레이드 해야했습니다. 그리고 코드를 옮겨서 테스트 해보니 파이썬 버

brain-nim.tistory.com


결론

굉장히 오랜만에 쓰는 글인 것 같다. 학술제 준비를 위해 판넬도 만들고, 피피티도 만들고, 백엔드 API 서버 코드도 수정해보고, 뭐 이것 저것 많이 했는데 글로 적을만한 것들은 아니라 넘어갔던 것 같다. 뭔가 굉장히 바쁜데 하나도 안 바쁜 이 기분은 뭘까..

아무튼 이후에도 엘라스틱 빈스톡으로 배포하려고 많이 연구했지만 결국 필요한 패키지가 용량 문제인지, 버전 문제인지, 시스템 문제인지, 아무튼 설치가 제대로 되지 않아서 결국 실패했다. 아, 모르겠다. 일단 지금 당장 내가 할 수 있는 것들을 하자!

p.s. 파이썬 너무 싫어.. 미워..

728x90
Comments