5강 구현 중심 ⏱ 약 20분

 

0. 학습 목표

→ 시스템 Python은 그대로 둔 채, 원하는 버전의 Python을 추가로 설치합니다.

더보기

이번 글은 구현 중심 강의입니다.

 

 

4강에서 만든 가상환경은 시스템 기본 python3의 버전을 그대로 물려받았습니다.

그런데 실제 개발에서는 프로젝트가 요구하는 버전이 시스템 기본 버전과 다른 경우가 많습니다.

 

 

이번 강의에서는 이 문제를 확인하고, Deadsnakes PPA로 python3.13을 시스템 Python과 별개로 추가 설치합니다.

 

 

여기서 중요한 것은 "추가"라는 단어입니다.

2강에서 본 것처럼 기본 python3를 교체하는 것이 아니라, 새 버전의 파이썬을 나란히, 추가로 설치합니다.

설치가 끝나면 python3python3.13 두 명령이 공존하게 됩니다.

 

 

구분 내용
이해할 것 Ubuntu 버전마다 기본 Python 버전이 다르다는 문제, 기존 버전과 새 버전이 공존하는 구조
만들 것 Deadsnakes PPA로 설치한 python3.13 + python3.13-venv
확인할 것 python3.13 --version이 동작하면서, 기존 python3 --version도 그대로인지

 

1. 문제 상황 — 사용하는 Python 버전이 다양하다

→ 내가 원하는 버전과 시스템 기본 버전이 다를 수 있다는 문제를 확인합니다.

더보기

1.1 첫 번째 문제

 

모든 Ubuntu 버전들이 같은 Python 버전을 사용하지 않습니다.

Ubuntu 버전별 기본 Python 버전이 다릅니다.

 

 

Ubuntu에 Python이 기본 설치되어 있는 것은 편리하지만, 그 버전은 Ubuntu가 정한 것이지 여러분이 고른 것이 아닙니다.

사용자가 원하는 파이썬 버전과 다를 수 있습니다.

 

 

 

 

1.2 Ubuntu 버전별 기본 Python 예시

Ubuntu 버전기본  python3 버전
20.04 LTS 3.8
22.04 LTS 3.10
24.04 LTS 3.12

 

그런데 프로젝트나 라이브러리는 특정 Python 버전을 요구할 수 있습니다.

예를 들어 팀 프로젝트가 3.13 기준으로 진행 중인데 내 Ubuntu 22.04의 기본이 3.10이라면, 버전이 맞지 않습니다.

 

 

이때 2강에서 본 잘못된 해결책(기본 python3 교체)이 아니라, 원하는 버전을 추가로 설치하는 올바른 해결책을 사용합니다.

시작 전에 현재 상태를 확인해 둡니다. 이 두 줄이 설치 후 "기존 환경이 안 바뀌었는지" 비교하는 기준이 됩니다.

 

 

 

 

1.3. 파이썬 버전 확인 방법

먼저 현재 Ubuntu 시스템에 무엇이 설치되어 있는지 확인해 봅시다.

가장 기본적으로 아래 두 명령을 먼저 확인합니다.

python3 --version      # 현재 기본 python3 버전 (설치 후에도 그대로여야 함)
which python3          # 현재 기본 python3 경로 (설치 후에도 그대로여야 함)

 

 

💡 Ubuntu 사용시, python과 python3의 차이

  • python3 : Ubuntu에서 기본적으로 사용하는 Python3 실행 명령 또는 python3.13처럼 버전을 명시한 명령을 기본으로 사용
  • python : 항상 기본 제공되는 명령은 아니며, 환경에 따라 없을 수도 있음

즉, Ubuntu에서는 혼동을 줄이기 위해 python보다 python3를 기본 명령으로 통일하여 사용하는 편이 좋습니다.

(가상환경 활성화 후의 python은 예외입니다 — 4강에서 확인했듯 가상환경이 자체 python을 제공합니다.)

 

2. 🐍 Deadsnakes PPA로 python3.13 설치하기

→ PPA 저장소를 추가하고, python3.13을 venv 기능과 함께 설치합니다.

더보기

2.1 PPA 추가 도구 설치와 저장소 등록

 

Ubuntu 기본 저장소에는 원하는 Python 버전이 없을 수 있습니다.

 

 

이때 PPA(Personal Package Archive)라는 외부 저장소를 추가해 설치할 수 있으며,

Python 버전 설치에 가장 널리 쓰이는 것이 Deadsnakes PPA입니다.

 

 

먼저 PPA를 추가하기 위한 도구를 설치합니다.

sudo apt update
sudo apt install -y software-properties-common      # PPA 추가 명령(add-apt-repository)을 제공하는 패키지

 

 

이어서 Deadsnakes PPA를 등록하고 패키지 목록을 갱신합니다.

sudo add-apt-repository ppa:deadsnakes/ppa      # Deadsnakes 저장소 등록 (Enter로 확인)
sudo apt update                                  # 새 저장소의 패키지 목록 반영

 

 

 

 

2.2 python3.13 설치하기

이제 원하는 버전을 설치합니다. 실행 파일만이 아니라 6강에서 사용할 venv 기능까지 함께 설치하는 것이 핵심입니다.

sudo apt install -y python3.13 python3.13-venv python3.13-dev
패키지 역할
python3.13 Python 3.13 실행 파일
python3.13-venv Python 3.13 기준 가상환경 생성 기능 (6강에서 사용)
python3.13-dev 일부 패키지 빌드에 필요한 개발 헤더

이 명령은 시스템 기본 python3를 3.13으로 바꾸지 않습니다. /usr/bin/python3.13이라는 별도의 실행 파일이 추가될 뿐입니다. PPA는 Ubuntu 공식 기본 저장소가 아닌 외부 저장소라는 점만 기억해 두면 됩니다.

 

3. 설치 확인하기

→ 새 버전이 동작하는지, 그리고 기존 환경이 그대로인지 두 가지를 검증합니다.

더보기

확인할 것은 두 가지입니다.

첫째, 새로 설치한 3.13이 동작하는가.

둘째, 기존 python3가 바뀌지 않고 그대로인가. 두 번째 확인이 이 강의의 핵심입니다.

python3.13 --version      # 새로 설치한 버전 확인
which python3.13          # 새 실행 파일의 경로 확인

python3 --version         # 기존 기본 python3 확인 (1번 섹션과 같아야 함)
which python3             # 기존 경로 확인 (1번 섹션과 같아야 함)
Python 3.13.x
/usr/bin/python3.13

Python 3.12.3              ← 기존 버전 그대로 (숫자는 여러분의 Ubuntu에 따라 다름)
/usr/bin/python3           ← 기존 경로 그대로

이제 /usr/bin 안에 python3python3.13이 나란히 존재합니다.

 

 

Thunar 트리로 /usr/bin을 열어 두 파일을 직접 확인해 보세요.

2강의 3단 구분으로 말하면, 시스템 Python은 그대로 있고 그 옆에 개발자가 설치한 전역 Python이 하나 추가된 것입니다.

/usr/bin/
├── python3          ← 시스템 Python (운영체제용 — 그대로 유지)
└── python3.13       ← 전역 Python (개발자가 추가 설치 — 이번 강의의 결과물)

 

 

🚨 주의

오늘(2026년 5월 5일) 경우, Ubuntu PPA와 같은  Ubuntu 인프라를 대상으로 한 대규모 디도스(DDoS) 공격으로, 접속을 강제로 차단하고 있는 상황에서는 PPA 사용은 잠시 포기하고 pyenv 같은 대안 찾아야 합니다.


4.
 삭제하기

→ 특정 버전의 파이썬을 삭제합니다.

더보기

Python 3.11 패키지 삭제하는 경우의 예시

sudo apt remove --purge python3.11 python3.11-venv python3.11-dev -y
Python 3.11 패키지 삭제 예시
sudo apt remove --purge python3.10 python3.10-venv python3.10-dev python3.10-minimal python3.10-distutils -y

 

패키지 의미
python3.10 Python 3.10 기본 실행 환경
python3.10-minimal Python 3.10의 최소 실행 파일. /usr/bin/python3.10 포함
python3.10-venv Python 3.10으로 가상환경 생성할 때 필요
python3.10-dev Python 3.10 기반 C 확장 모듈 빌드용 개발 파일
python3.10-distutils 예전 Python 패키지 빌드/설치 도구 관련 모듈

 

 

불필요한 의존성 정리

sudo apt autoremove -y

 

 

패키지 캐시 정리

sudo apt clean

 

 

Deadsnakes PPA 자체 제거

sudo add-apt-repository --remove ppa:deadsnakes/ppa
sudo apt update

 

 

확인 방법

ls /etc/apt/sources.list.d/
  • deadsnakes 관련 파일이 사라졌거나 비활성화되어 있으면 됩니다.

 


5.
설치된 Python 확인 방법

→ 여러 버전의 파이썬을 설치하고 사용합니다. 이때 설치된 파이썬을 확인할 수 있어야 합니다.

더보기

시스템에 여러 Python 버전이 설치되어 있다면, 어떤 Python 실행 파일이 있는지 직접 확인하는 것이 좋습니다.

 

5.1 실행 파일 디렉토리 직접 조회하기

ls -l /usr/bin/python*

이 명령으로 시스템에 존재하는 Python 관련 실행 파일 목록을 확인할 수 있습니다.

 

 

5.2 각 버전을 직접 실행해 보기

python3 --version
python3.8 --version
python3.9 --version
python3.10 --version
python3.11 --version
python3.12 --version

이 방법은 실제로 해당 버전 명령이 실행 가능한지 직접 확인하는 가장 단순한 방법입니다.

 

 

5.3 보조 팁: 자동완성으로 확인하기

보조적인 방법으로는 터미널에서 python 또는 python3를 입력한 뒤 Tab 키를 두 번 눌러 자동완성 목록을 보는 방법도 있습니다. 다만 이 방식은 쉘 설정에 따라 결과가 달라질 수 있으므로, 보조 팁 정도로만 인지합니다.

 

 

6. (부록) PPA를 사용할 수 없을 때의 대안

→ PPA 접속이 불가능한 환경을 위한 대안 설치 방법과, 설치 정리 방법을 참고용으로 정리합니다.

더보기

이 섹션은 참고용 부록입니다.

2~3번 섹션에서 PPA 설치가 성공했다면 읽지 않고 6강으로 넘어가도 됩니다.

회사 네트워크 정책이나 PPA 서버 장애 등으로 PPA를 사용할 수 없을 때만 아래 방법을 사용하세요.

 

 

6.1 대안 — pyenv로 설치하기

pyenv는 apt를 거치지 않고 Python 공식 소스 코드를 받아 사용자 환경에 직접 빌드하는 도구입니다.

PPA 서버에 접속할 수 없어도 python.org만 접속 가능하면 설치할 수 있습니다.

 

먼저 소스 빌드에 필요한 도구들을 설치합니다.

sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev curl libncursesw5-dev xz-utils \
tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev      # Python 소스 빌드 의존성

 

 

pyenv를 설치합니다.

curl https://pyenv.run | bash      # pyenv 설치 스크립트 실행

 

 

설치 후 셸이 pyenv를 인식하도록 ~/.bashrc 파일 맨 아래에 설정을 추가합니다. nano ~/.bashrc로 파일을 열고(저장: Ctrl+O 후 Enter, 종료: Ctrl+X) 다음 내용을 붙여넣습니다.

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

 

 

설정을 현재 터미널에 적용하고, pyenv로 원하는 버전을 설치합니다.

소스를 직접 빌드하므로 몇 분 정도 걸리는 것이 정상입니다.

source ~/.bashrc           # 설정 적용
pyenv --version            # pyenv 동작 확인
pyenv install 3.13         # Python 3.13 소스 빌드 설치 (수 분 소요)
pyenv versions             # 설치된 버전 목록 확인

 

 

 

 

6.2 대안 — uv로 설치하기

uv는 최근 널리 쓰이는 Python 버전·패키지 관리 도구로, Python 설치와 가상환경 생성을 매우 빠르게 처리합니다.

이 시리즈의 본선은 표준 도구인 venv이므로 여기서는 존재와 기본 사용법만 소개합니다.

curl -LsSf https://astral.sh/uv/install.sh | sh      # uv 설치
export PATH="$HOME/.local/bin:$PATH"                  # 현재 터미널에 uv 경로 적용
uv python install 3.13                                # Python 3.13 설치
uv python list                                        # 설치된 Python 목록 확인

 

 

 

 

6.3 (참고) PPA 설치를 정리하고 싶을 때

실습 후 PPA로 설치한 버전을 제거하고 싶다면 다음 순서로 정리합니다.

설치의 역순입니다.

sudo apt remove --purge -y python3.13 python3.13-venv python3.13-dev   # 패키지 제거
sudo apt autoremove -y                                                  # 불필요한 의존성 정리
sudo add-apt-repository --remove ppa:deadsnakes/ppa                     # PPA 저장소 제거
sudo apt update

 

 

ls /etc/apt/sources.list.d/에서 deadsnakes 관련 파일이 사라졌으면 정리 완료입니다. 단, 이후 강의(6·9·11·13강)는 python3.13이 설치되어 있다는 전제로 진행하므로, 시리즈를 계속 따라올 예정이라면 지금은 제거하지 마세요.

→ 다음 강의 (6강): 이번에 설치한 python3.13으로 가상환경을 만듭니다. 4강과의 차이는 단 하나 — python3 -m venv 대신 python3.13 -m venv를 사용한다는 점입니다. 어떤 Python으로 venv를 만드느냐가 가상환경의 버전을 결정한다는 것을 확인합니다.