[linux] 우분투에 파이썬 3 설치하기

파이썬 버전 확인

현재 설치된 파이썬 버전을 확인합니다. 파이썬이 설치되지 않았으면 에러가 발생하므로 설치 여부도 알 수 있습니다.

$ python3 --version
Python 3.10.12
$

파이썬은 버전별로 구분됩니다. "python --version"으로 설치 여부를 확인하거나 버전 여부를 확인하면 에러가 발생할 수 있습니다. python 커맨드는 버전2까지만 사용하는 커맨드입니다. 다음과 같은 에러가 발생하면 python3가 설치된 것이므로 python3 커맨드로 파이썬에 접근해야 합니다.

$ python --version
Command 'python' not found, did you mean:
  command 'python3' from deb python3
  command 'python' from deb python-is-python3
$

apt로 파이썬 설치

리눅스 패키지 관리자인 apt로 설치하려면 리눅스를 최신 상태로 먼저 업데이트합니다.

sudo apt update

파이썬이 설치되어있는지 확인합니다. "python3", 또는 "python --version" 명령어로 설치 버전을 확인할 수 있습니다.

$ python3 --version
Python 3.10.12
$

apt 패키지 관리자로 파이썬을 설치합니다. 파이썬은 버전별로 패키지가 배포되고 있으며 현재 최신버전은 버전 3.x입니다.

sudo apt install python3

특정 버전 파이썬을 설치하려면 버전명을 명시해서 설치할 수 있습니다.

sudo apt install python3.12

파이썬의 최신 버전, 또는 특정 버전은 공식 apt 리포지토리에서는 배포되고 있지 않을 수 있습니다. 이럴 때는 PPA 리포지토리를 추가해서 설치해야 합니다.

sudo apt install python3.12
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:

PPA로 설치

PPA(Personal Package Archive)는 우분투의 써드파티 리포지토리 저장소입니다. 공식 배포되는 패키지 외에 다양한 패키지들을 저장하고 있으며, 파이썬의 여러가지 버전들 또한 배포하고 있습니다.

공식 리포지토리에 없는 파이썬 버전을 설치하려면 PPA를 사용하면 됩니다.

먼저 리눅스를 최신상태로 업데이트 합니다.

sudo apt update

최신 버전인 3.12 버전을 설치하려고 하지만 apt로 관리하는 패키지 리포지토리에는 3.12 버전이 없습니다.

sudo apt install python3.12
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
E: python3.12 패키지를 찾을 수 없습니다
E: Couldn't find any package by glob 'python3.12'

ppa 리포지토리중에서 파이썬 최신 버전 패키지를 배포하는 리포지토리를 apt 리포지토리 목록에 추가합니다.

PPA 중에 deadsnakes 리포지토리를 apt 목록에 추가합니다. 다음 순서대로 커맨드를 실행하면 deadsnakes/ppa 리포지토리에서 패키지 목록을 가져옵니다.

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

공식 리포지토리에는 없는 최신 버전인 3.12 버전을 설치합니다.

$ sudo apt install python3.12
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  dctrl-tools dmeventd dmraid dpkg-repack efibootmgr gir1.2-timezonemap-1.0 gir1.2-xkl-1.0 grub-common grub-efi-arm64
  grub-efi-arm64-bin grub-efi-arm64-signed grub2-common kpartx kpartx-boot libdebian-installer4
  libdevmapper-event1.02.1 libdmraid1.0.0.rc16 libdpkg-perl libfile-fcntllock-perl liblvm2cmd2.03 libtimezonemap-data
  libtimezonemap1 lvm2 os-prober python3-icu python3-pam rdate thin-provisioning-tools
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libpython3.12-minimal libpython3.12-stdlib python3.12-minimal
제안하는 패키지:
  python3.12-venv binfmt-support
다음 새 패키지를 설치할 것입니다:
  libpython3.12-minimal libpython3.12-stdlib python3.12 python3.12-minimal
0개 업그레이드, 4개 새로 설치, 0개 제거 및 7개 업그레이드 안 함.
6,101 k바이트 아카이브를 받아야 합니다.
이 작업 후 22.5 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n]

버전을 확인해서 최신 버전인 3.12 버전으로 실행 가능한지 확인합니다.

$ python3.12 --version
Python 3.12.1
$

패키지가 추가 설치되어 python3와 python3.12가 별도로 존재하는 것에 주의해야 합니다. 공식 리포지토리를 통해 업그레이드가 되어야 "python", "python3"를 대체하며 deadsnakes/ppa 리포지토리에서 설치한 패키지는 python3.12 바이너리가 별도로 설치됩니다.