Установка CPython из исходников

В статье приведено краткое пошаговое руководство по сборке CPython из исходников в чистой ОС Debian 13. Сборка на других платформах описана в официальном руководстве. Параметры скрипта configure описаны в документации Python.

Подготовка

Установка sudo

Наличие sudo зависит от выбранных при установке системы параметров. Если утилита не установлена, установим её и добавим текущего пользователя в группу sudo. Для этого понадобятся права пользователя root. Если sudo уже установлен, этот шаг можно пропустить.

su -
apt install sudo
adduser <user-name> sudo
exit

<user-name> — имя пользователя, под которым мы будем работать.

Чтобы изменения вступили в силу, нужно выйти из пользовательской сессии и войти заново.

Установка необходимых пакетов

Обновим пакетный индекс:

sudo apt update

Установим вспомогательные утилиты и инструменты сборки:

sudo apt install -y wget build-essential

Установим необходимые зависимости:

sudo apt install -y \
    zlib1g-dev \
    gdb \
    lzma \
    lcov \
    libbz2-dev \
    liblzma-dev \
    libsqlite3-dev \
    libssl-dev \
    libffi-dev \
    libreadline-dev \
    libncurses-dev \
    uuid-dev \
    libgdbm-dev \
    libgdbm-compat-dev \
    pkg-config \
    tk-dev \
    libzstd-dev \
    inetutils-inetd

Список пакетов составлен на основе официального руководства по сборке и немного адаптирован для Debian 13. Он включает зависимости, необходимые для сборки модулей стандартной библиотеки, а также инструменты разработки и тестирования CPython. Там же можно найти зависимости для других дистрибутивов.

Сборка

Теперь можно приступать к сборке. Первым делом скачаем исходники CPython:

cd
wget https://www.python.org/ftp/python/3.14.6/Python-3.14.6.tar.xz

Разархивируем архив:

tar xvf Python-3.14.6.tar.xz
cd Python-3.14.6

Для установки Python создадим в домашней директории каталог .python. Каждая версия интерпретатора будет храниться в отдельной поддиректории.

mkdir -p "$HOME/.python/3.14.6"

Произведём конфигурацию сборки. Каталог, в который будет установлен Python, указываем с помощью параметра --prefix.

./configure --enable-optimizations --prefix="$HOME/.python/3.14.6"

Явно указывать каталог установки полезно. В этом случае для удаления конкретной версии Python достаточно удалить соответствующую директорию. Если не указывать --prefix, файлы будут установлены в системные подкаталоги и нужно будет их оттуда вычищать вручную.

Запускаем сборку:

make -j"$(nproc)"

Проверим, что собранный интерпретатор запускается:

./python --version

Теперь скопируем собранные файлы в установочные каталоги:

make altinstall

Сборка завершена. Теперь Python доступен по пути $HOME/.python/3.14.6/bin/python3.14. Осталось выполнить несколько завершающих шагов.

CPython уже установлен на компьютере, но пока для его запуска приходится указывать полный путь: $HOME/.python/3.14.6/bin/python3.14. Не очень удобно. Чтобы запускать интерпретатор по имени python3.14, нужно добавить каталог с исполняемым файлом в PATH.

echo 'export PATH="$HOME/.python/3.14.6/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Теперь для запуска интерпретатора нужно просто ввести:

python3.14

Удалим архив и каталог с исходниками:

cd ..
rm Python-3.14.6.tar.xz
rm -rf Python-3.14.6/

Напоследок обновим pip:

python3.14 -m pip install -U pip

Все готово! Мы соблали интерпретатор CPython из исходников, установили его в нужную нам директорию и добавили директорию с исполняемым файлом в PATH. Интерпретатор готов к работе.