Установка Python на Ubuntu: последняя версия
Что в статье
- Краткое руководство по трём подходам: deadsnakes PPA, сборка из исходников, pyenv/Docker.
- Пошаговые команды, контрольные проверки и рекомендации по безопасности.
- Чеклисты для разработчика и системного администратора, критерии приёмки, варианты устранения ошибок.
Введение
Ежегодно Python получает значительные обновления. Дистрибутивы Ubuntu часто поставляются с предустановленной версией, которая может отставать от официального релиза. Если вам нужна более новая версия Python (в примере — Python 3.12, выпущенный 2 октября 2023 года), этот материал объяснит варианты установки и риски каждого метода.
Кому что подходит
- Если нужно быстро получить новую версию для разработки на рабочей станции — используйте deadsnakes PPA или pyenv.
- Если вы управляете сервером с критичными системными скриптами — предпочтительнее pyenv для пользователей или сборка в /usr/local с altinstall; не меняйте системный /usr/bin/python.
- Для изолированного запуска приложения используйте Docker-контейнер с нужной версией Python.
Шаг 1: Проверка текущей версии Python
Сначала убедитесь, какая версия Python уже установлена:
python3 --version
Команда выведет что-то вроде “Python 3.10.12”. Если это не та версия, которая вам нужна, переходите к способам установки ниже.
Шаг 2: Варианты установки последней версии Python на Ubuntu
Ниже — три основных подхода. Каждый имеет свои преимущества и ограничения.
Способ A — Быстро: deadsnakes PPA (рекомендуется для большинства пользователей)
PPA (Personal Package Archive) — сторонний репозиторий пакетов для Ubuntu. PPA deadsnakes содержит несколько версий Python, чаще обновляемых, чем стандартные репозитории Ubuntu.
- Добавьте репозиторий deadsnakes:
sudo add-apt-repository ppa:deadsnakes/ppa
Когда будет предложено подтвердить добавление — нажмите Enter.
- Обновите индекс пакетов:
sudo apt update- Установите нужную версию (пример для 3.12):
sudo apt install python3.12
- Запустите установленную версию явно:
python3.12
Важно: при установке через deadsnakes пакет python3 (символическая ссылка /usr/bin/python3) обычно не меняется автоматически. Если вы хотите сделать новую версию системной по умолчанию, используйте update-alternatives (описано в следующем разделе). Не меняйте /usr/bin/python (без суффикса) — это может нарушить системные скрипты.
Преимущества deadsnakes:
- Быстро и просто.
- Пакеты собраны для Ubuntu и включают зависимости.
Ограничения:
- PPA — сторонний репозиторий (доверяйте его содержимому).
- Может не содержать экспериментальных опций сборки, которые нужны для специфичных задач.
Способ B — Полный контроль: сборка Python из исходников
Сборка из исходников даёт полный контроль над опциями компиляции, местом установки и оптимизациями.
- Установите зависимости для сборки (одноразово):
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev liblzma-dev- Скачайте исходники с официального сайта Python и распакуйте их в свою папку загрузок. На странице загрузок нажмите “Download Python <версия>”.

- Перейдите в каталог загрузок и распакуйте архив:
cd ~/Downloads
tar -xJf Python-3.12.0.tar.xz
cd Python-3.12.0
- Настройте сборку. Рекомендуется использовать –enable-optimizations и задать префикс, если вы не хотите заменять системный Python:
./configure --enable-optimizations --prefix=/usr/local
- Скомпилируйте и установите. Для ускорения используйте параллельную сборку и предпочитайте altinstall, чтобы не заменять /usr/bin/python3:
make -j$(nproc)
sudo make altinstallИспользование make altinstall создаст бинарник python3.12 в /usr/local/bin и не заменит системный python3.

- Проверьте установку:
/usr/local/bin/python3.12 --version
Преимущества сборки из исходников:
- Полный контроль над конфигурацией и оптимизациями.
- Можно установить в произвольный префикс (/opt, /usr/local и т.д.).
Ограничения:
- Длинный процесс сборки.
- Необходимы зависимости и знания о возможных ошибках сборки.
Способ C — Изоляция: pyenv и Docker (для управления версиями без вмешательства в систему)
pyenv позволяет пользователю устанавливать и переключаться между версиями Python локально (в каталоге пользователя). Это безопасный способ для разработки.
Установка pyenv (кратко):
# зависимости (пример):
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev
# быстрый установщик pyenv
curl https://pyenv.run | bashПосле установки добавьте в ~/.bashrc / ~/.profile строки, которые предложит установщик, затем выполните:
exec $SHELL
pyenv install 3.12.0
pyenv global 3.12.0 # или pyenv local 3.12.0 для проектаDocker — ещё один способ получить нужную версию Python в изолированном контейнере. Например, официальный образ Python:
docker run -it --rm python:3.12 bashПреимущества pyenv/Docker:
- Не ломают системный Python.
- Легко переключаться между версиями.
- Подходят для тестирования и CI.
Ограничения:
- pyenv требует установки зависимостей и настройки окружения.
- Docker добавляет слои и требует знания контейнеризации.
Шаг 3: Сделать новую версию Python системной по умолчанию (опционально)
Если вы устанавливали через deadsnakes и хотите, чтобы python3 запускал новую версию, используйте update-alternatives:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1Если в группе уже несколько альтернатив, выберите нужную вручную:
sudo update-alternatives --config python3Выберите номер версии и нажмите Enter.
Важно: не меняйте /usr/bin/python (без 3). Многие системные утилиты Ubuntu ожидают конкретную версию Python; изменение /usr/bin/python может привести к поломке APT и других инструментов.
Что может пойти не так и как исправить
Частые проблемы и решения:
- Ошибка сборки из-за отсутствующих заголовочных файлов (например, “_ssl” не найден): установите соответствующие -dev пакеты (libssl-dev, libbz2-dev и т.д.).
- После установки через apt новая версия не запускается по python3: проверьте /usr/bin и update-alternatives.
- Конфликты между пакетами system и user: используйте virtualenv/venv или pyenv.
- PPA не содержит нужной версии для вашей версии Ubuntu: используйте сборку из исходников или Docker.
Совет по отладке: изучите вывод configure и make; там обычно указаны отсутствующие зависимости или ошибки компоновки.
Чеклисты
Чеклист для разработчика (локальная машина):
- Проверил текущую версию python3 –version
- Сделал резервную копию критичных виртуальных окружений (если нужно)
- Установил через deadsnakes или pyenv
- Проверил версию python3.12 –version или python3 –version после переключения
- Протестировал проекты в venv с новой версией
Чеклист для системного администратора (сервер):
- Оценил совместимость сервисов с новой версией
- Не менял /usr/bin/python
- Использовал altinstall или pyenv для пользователей
- Создал план отката (на случай ошибок)
- Тестировал обновления в staging перед production
Критерии приёмки
Чтобы считать установку успешной, выполните эти проверки:
- Команда python3.12 –version возвращает ожидаемую версию.
- При явном запуске python3.12 интерпретатор запускается без ошибок.
- Системные утилиты работают (если вы не меняли /usr/bin/python).
- Виртуальные окружения могут быть созданы и активированы для новой версии.
Решение: какой способ выбрать — быстрый поток принятия решения
flowchart TD
A[Нужно Python для локальной разработки?] -->|Да| B{Хотите менять версии часто?}
B -->|Да| C[pyenv]
B -->|Нет| D{Требуется быстро и просто?}
D -->|Да| E[deadsnakes PPA]
D -->|Нет| F[Сборка из исходников с altinstall]
A -->|Нет, сервер production| G{Можно тестировать в staging?}
G -->|Да| F
G -->|Нет| H[Использовать Docker или оставить системную версию]Риски и способы минимизации
Риски:
- Поломка системных пакетов при изменении /usr/bin/python.
- Несовместимость зависимостей (C-расширения, бинарные wheels).
- Непредвиденное поведение устаревшего кода в новой версии.
Митигаторы:
- Использовать altinstall или pyenv вместо перезаписи системного python3.
- Тестировать на staging и использовать виртуальные окружения.
- Поддерживать список зависимостей (requirements.txt) и тесты для CI.
Короткие сценарии тестирования (Acceptance тесты)
- Установка через deadsnakes: после apt install python3.12 команда python3.12 –version должна вернуть 3.12.x.
- Сборка из исходников: /usr/local/bin/python3.12 запускается, а системный python3 не изменён.
- pyenv: pyenv local 3.12.0 задаёт версию для папки проекта; python –version в папке проекта показывает 3.12.0.
- Docker: docker run –rm python:3.12 python –version возвращает 3.12.x.
Короткий словарь терминов
- PPA — сторонний репозиторий пакетов для Ubuntu.
- altinstall — опция make install, которая устанавливает интерпретатор без замены системных ссылок python3.
- pyenv — инструмент управления версиями Python для пользователей.
- venv — встроенный в Python механизм создания виртуального окружения.
Часто задаваемые вопросы
Нужно ли удалять старые версии Python?
Нет, обычно старые версии можно оставить. Многие системы и проекты зависят от конкретной версии. Используйте виртуальные окружения и переключатели версий вместо удаления.
Безопасно ли использовать PPA deadsnakes?
Deadsnakes — широко используемый репозиторий, но это всё же сторонний источник. Используйте его на рабочей станции и проверяйте релизы; для серверов с повышенными требованиями предпочтительнее сборка из исходников или изолированные среды.
Как откатить установку, если что-то сломалось?
Если вы устанавливали из PPA, можно удалить пакет через apt и при необходимости удалить PPA. При сборке из исходников удалите файлы в префиксе (например, /usr/local) или используйте бэкап. Всегда имейте план отката и тестовый сервер.
Заключение
Установка последней версии Python на Ubuntu может быть простой (deadsnakes) или гибкой (сборка из исходников, pyenv). Выбор зависит от вашего сценария: удобство против полного контроля. В большинстве случаев для разработки достаточно deadsnakes или pyenv; для production — тестируйте и используйте изолированные окружения.
Важно: всегда тестируйте новую версию в отдельном окружении перед внедрением в критичные проекты.
Короткая шпаргалка: если нужно быстро — deadsnakes; для безопасного управления версиями — pyenv; для полного контроля — сборка и altinstall.
Если хотите — можно добавить инструкцию по установке pip-пакетов, настройке virtualenv и шаблон systemd unit для приложения под новой версией Python.
Похожие материалы
Как создать групповой чат iMessage на iPhone
Как отключить авто‑улучшение фото на iPhone
Как сделать изогнутый текст в Photoshop
Блокируется шифрованный DNS на iPhone — что делать
Сброс виртуальной памяти в Windows 11