티스토리 뷰

Ubuntu 16.04에 Python3.7 설치
몇년전에 개발했던 보드에 추가기능을 파이썬으로 구현을 해야하는데 버전이 낮은 문제가 있다.
기본 버전으로 파이썬3.5가 설치되어 있는데 개발에 사용할 pip 패키지들의 최소 요구사항이 python3.6이다.
기존에 운영중이 서비스와 프로그램들에 문제가 없도록 최소한의 업그레이드만 해야한다.
우선 우분투 16.04에서 설치할 수 있는방법으로 PPA를 사용하는 방법과 소스컴파일이 있는 것 같다.
개발환경
- aarch64
- Kernel 4.4.172
- Ubuntu 16.04
PPA
1. ppa repository 추가
sudo add-apt-repository ppa:deadsnakes/ppa
2. 패키지 설치
sudo apt update
sudo apt install python3.7
3. 이슈
예전에 설치가 잘된것 같은데 업데이트가 되었는지 모르지만 이제 16.04에서는 설치가 안된다.
Supported Ubuntu and Python Versions
====================================
- Ubuntu 20.04 (focal) Python3.5 - Python3.7, Python3.9 - Python3.13
- Ubuntu 22.04 (jammy) Python3.7 - Python3.9, Python3.11 - Python3.13
- Ubuntu 24.04 (noble) Python3.7 - Python3.11, Python3.13
- Note: Python2.7 (focal, jammy), Python 3.8 (focal), Python 3.10 (jammy), Python3.12 (noble) are not provided by deadsnakes as upstream ubuntu provides those packages.
Why some packages aren't built:
- Note: for focal, older python versions require libssl<1.1 so they are not currently built
- Note: for jammy and noble, older python versions requre libssl<3 so they are not currently built
- If you need these, reach out to asottile to set up a private ppa
The packages may also work on other versions of Ubuntu or Debian, but that is not tested or supported.
https://github.com/deadsnakes/python3.7
소스컴파일
1. 먼저 필요한 의존성 패키지들을 설치합니다.
sudo apt-get update
sudo apt-get install -y build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
2. Python 3.7.x 소스코드를 다운로드합니다 (버전 번호는 최신 버전으로 변경 가능)
cd /tmp
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar xzf Python-3.7.9.tgz
3. 소스 디렉토리로 이동하여 컴파일 및 설치를 진행합니다.
cd Python-3.7.9
./configure --enable-optimizations
sudo make altinstall
4. 설치가 완료되면 버전을 확인합니다.
python3.7 --version
이 방법을 사용하면 기존 시스템 Python을 건드리지 않고 Python 3.7을 별도로 설치할 수 있습니다.
주의: make altinstall을 사용하는 것이 중요합니다. make install을 사용하면 기본 Python 바이너리를 덮어쓸 수 있습니다.
Update Alternatives
여러 파이썬 버전에서 기본으로 사용할 버전을 선택하자.

버전추가
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 3
버전선택
이제 사용할 버전을 선택하자
sudo update-alternatives --config python

버전확인
$ python -V
Python 3.7.9
pip 업그레이드
다운로드 및 설치
wget https://bootstrap.pypa.io/pip/3.7/get-pip.py
python get-pip.py
버전확인
pip -V
pip 24.0 from /home/artik/.local/lib/python3.7/site-packages/pip (python 3.7)반응형
'개발 > Linux' 카테고리의 다른 글
| 라즈베리파이 시리얼 설정용 Shell 스크립트 (0) | 2024.11.07 |
|---|---|
| Nginx를 사용하여 Node.js 포트 포워딩하기 (0) | 2023.07.07 |
| WSL USB 마운트 문제 (lsblk에서 보이지 않음) (3) | 2023.06.19 |
| WSL USB 디바이스 연결 (0) | 2023.06.13 |
| Ubuntu CPU on/off (1) | 2022.12.20 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Naver Cloud Platform
- Shell Script
- sms api
- viewDidLoad()
- wsl usb mount
- action bar
- clearTimeout
- Window Status Bar
- wsl lsblk
- usbipd attach
- 롯데캐슬
- 루미니
- ProgressBar
- SHORT URL
- whose view is not in the window hierarchy
- Android Bar Color
- Nginx #NodeJS #웹서버 #포트포워딩 #웹호스팅 #백엔드개발 #웹개발 #웹프로젝트 #서버관리 #웹애플리케이션
- artik710
- AlertDialog
- 다트 플러터
- Bad mode in Synchronous Abort handler detected
- raspberrypi serial
- viewDidAppear()
- USB Mass Storage
- sms
- setTimeout
- 어바니엘
- Dart Flutter
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함