Сначала забудь про всякие чудеса и магию. Python 3.9 — это не эксклюзивный клуб, его поставить несложно. Главное — знать, что делать, и не ломать систему. На Ubuntu 20.04 по умолчанию есть Python 3.8, а тебе нужна новее — значит, надо либо использовать проверенный сторонний репозиторий, либо собирать самому. Вот как это делается.

Способ 1. Установка через apt и PPA deadsnakes — быстро и без проблем

Плюс: всё просто, быстро, нормально обновляется. Минус: это не самая свежая версия, но для 3.9 вполне сойдёт.

Обнови списки пакетов и установи утилиты для добавления PPA:

sudo apt update
sudo apt install software-properties-common

Добавь репозиторий deadsnakes — это источник почти свежих версий Python:

sudo add-apt-repository ppa:deadsnakes/ppa

Когда спросит, жми Enter — не бойся.

Обнови список пакетов ещё раз, чтобы подтянуть из PPA:

sudo apt update

Устанавливай Python 3.9:

sudo apt install python3.9

Проверь, что всё в порядке:

python3.9 --version

Если выдал что-то вроде Python 3.9.x, значит, ты в шоколаде.

Способ 2. Компиляция из исходников — для тех, кому пофиг на время и хочется полного контроля

Это долгая и грязная история, но иногда без неё не обойтись — если нужна какая-то кастомная сборка или новейший патч.

Подготовь систему — поставь всё, что нужно для сборки:

sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev

Скачай исходники Python 3.9.1 (или заменяй на нужную версию):

wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz

Распакуй архив:

tar -xf Python-3.9.1.tgz

Перейди в каталог с исходниками:

cd Python-3.9.1

Запусти конфигуратор, который проверит систему и подготовит сборку:

./configure --enable-optimizations

Опция --enable-optimizations реально ускорит питон, но увеличит время компиляции. Если тебе лень — убирай.

Сборка. Определи число ядер процессора:

nproc 

Допустим, 12. Запускай сборку с параллельными потоками:

make -j12

Устанавливай Python, не трогая системный python3:

sudo make altinstall

altinstall — чтобы не убить системный Python и не сломать Ubuntu.

Проверяй результат:

python3.9 --version

Итог

Если не хочешь тратить полдня, жми на первый способ — PPA deadsnakes и apt. Работает и не глючит. Если хочешь гиковскую точность и полный контроль — второй способ — собирай сам, но будь готов ждать и ковыряться с ошибками.

В любом случае, забудь про sudo apt install python3 — это не то, что тебе нужно, там в Ubuntu 20.04 только 3.8, и менять его руками — идиотизм.

В реальной жизни питон 3.9 живёт в своём углу, и если нужно — используешь python3.9 напрямую. Переподвязывать системный python3 не стоит, если не хочешь загадить себе весь дистрибутив.