Основы

Версии Python: Python 2 и 3, что нового в 3.10–3.15 и какую версию ставить

Обновлено: · Skillaria.Top

Актуальная ветка — Python 3, последняя стабильная версия — Python 3.15 (релиз 9 октября 2026); Python 2 не поддерживается с 2020 года. Новая версия выходит каждый октябрь и получает исправления около пяти лет, поэтому для новых проектов ставьте свежую 3.x, а узнать текущую версию можно командой python3 --version.

Сегодня живая ветка языка одна — Python 3. Последняя стабильная версия — Python 3.15, вышедшая 9 октября 2026 года, а Python 2 официально закончил жизнь ещё в 2020-м. Ниже — чем отличаются версии Python, что появилось в каждой из 3.10–3.15, какую ставить и как узнать, какая стоит у вас.

Как устроены версии Python

Номер версии состоит из трёх чисел: 3.15.0. Первое — мажорная версия (ветка языка), второе — минорная, в ней появляются новые возможности, третье — номер исправления, в нём только багфиксы. Когда говорят «версии Python», обычно имеют в виду минорные: 3.10, 3.11, 3.12 и так далее.

С 2019 года действует годовой цикл (PEP 602): новая минорная версия выходит каждый октябрь. Примерно за полгода до релиза выходят альфы, потом беты и кандидаты, а после релиза — исправления вида 3.15.1, 3.15.2. Обновляться между ними безопасно: поведение языка в патч-версиях не меняется.

Отсюда же путаница в поиске: «python 311» и «python 3.11» — это одно и то же, версия 3.11. Десятичной дробью номер не является, поэтому 3.10 новее, чем 3.9, а 3.15 новее, чем 3.2.

Python 2 и Python 3: в чём разница

Python 3 вышел в 2008 году и сознательно сломал обратную совместимость, чтобы исправить старые решения языка. Поэтому код для Python 2 часто не запускается в Python 3 без правок. Последняя версия второй ветки — 2.7, её поддержка закончилась 1 января 2020 года, финальный выпуск 2.7.18 вышел в апреле 2020-го.

ЧтоPython 2Python 3
Печатьprint "hi" — операторprint("hi") — функция
Строкибайты по умолчанию, Unicode — u"..."str — всегда Unicode, байты — bytes
Деление7 / 2 даёт 37 / 2 даёт 3.5, целое — 7 // 2
Вводraw_input()input()
Диапазоныrange строит список, xrange — ленивыйrange ленивый
Поддержканет с 2020 годановая версия каждый год

Если вы нашли учебник или ответ, где print написан без скобок, это Python 2 — материал устарел. Учить вторую ветку сейчас незачем: её не ставят в новые системы, библиотеки давно отказались от её поддержки, а знания о ней нужны разве что для переноса старого кода.

Что нового в Python 3.10–3.15

Ниже — главное в каждой версии, то, что меняет повседневный код. Полные списки изменений лежат в разделе What's New официальной документации.

Python 3.10 (октябрь 2021)

  • Сопоставление с образцом match/case (PEP 634) — разбор структур данных вместо цепочек if/elif.
  • Объединение типов через черту: int | None вместо Optional[int] (PEP 604).
  • Несколько контекстных менеджеров в скобках в одном with.
  • Заметно более понятные сообщения об ошибках синтаксиса.
def describe(point):
    match point:
        case (0, 0):
            return "начало координат"
        case (x, 0):
            return f"на оси X: {x}"
        case _:
            return "где-то ещё"

print(describe((3, 0)))  # на оси X: 3

Python 3.11 (октябрь 2022)

  • Скорость: проект Faster CPython ускорил интерпретатор в среднем примерно на четверть, на части задач — сильнее.
  • Точные указатели в трейсбеке: стрелки ^^^^ показывают, какое именно выражение в строке упало (PEP 657).
  • Группы исключений и except* (PEP 654), заметки к исключениям через add_note().
  • Модуль tomllib для чтения TOML — например, pyproject.toml.

Python 3.12 (октябрь 2023)

  • Новый синтаксис обобщений: def first[T](items: list[T]) -> T и оператор type для псевдонимов типов (PEP 695).
  • f-строки оформлены как полноценная грамматика (PEP 701): внутри можно использовать те же кавычки, переносы и комментарии.
  • Из стандартной библиотеки удалён устаревший distutils.
  • Ещё более подробные подсказки в ошибках, например «забыли импортировать модуль?».
type Pair = tuple[int, int]

def first[T](items: list[T]) -> T:
    return items[0]

songs = ["a", "b"]
print(f"Первая: {first(songs)!r}, всего {len(songs)}")
print(f"{"кавычки внутри"}")  # работает с 3.12

Кстати, о частом вопросе «f-строки с какой версии»: сами f-строки появились ещё в Python 3.6, а свободу с кавычками и переносами внутри фигурных скобок добавил 3.12.

Python 3.13 (октябрь 2024)

  • Новая интерактивная консоль: цвет, многострочное редактирование, история, команды exit и help без скобок.
  • Экспериментальная сборка без GIL (free-threaded, PEP 703) и экспериментальный JIT-компилятор (PEP 744).
  • Удалены «мёртвые батарейки» — старые модули вроде cgi и telnetlib (PEP 594).
  • Срок исправлений ошибок для новых версий увеличен до двух лет.

Python 3.14 (октябрь 2025)

  • Шаблонные строки, t-строки: t"Привет, {name}" возвращают не готовую строку, а объект шаблона, который можно безопасно обработать (PEP 750).
  • Отложенное вычисление аннотаций (PEP 649) — меньше проблем с типами, объявленными ниже по файлу.
  • Сборка без GIL перестала быть экспериментальной и получила официальную поддержку.
  • Модуль compression.zstd, подсветка синтаксиса в консоли, except A, B: без скобок.

Python 3.15 (9 октября 2026)

  • Ленивый импорт lazy import (PEP 810): модуль загружается при первом обращении, а не на старте. В замере из курса скрипт с lazy import pandas стартовал за 14 мс вместо 280 мс.
  • Встроенный неизменяемый словарь frozendict (PEP 814).
  • Распаковка в генераторах списков: [*g for g in groups] (PEP 798).
  • Сэмплирующий профайлер Tachyon в стандартной библиотеке (PEP 799).
  • UTF-8 по умолчанию при работе с файлами (PEP 686) — конец сюрпризам с кодировкой на Windows.
  • Новые подсказки «Did you mean» в сообщениях об ошибках.
lazy import json                    # PEP 810
cfg = frozendict(limit=500)         # PEP 814
flat = [*g for g in [[1, 2], [3]]]  # PEP 798 -> [1, 2, 3]
print(flat, cfg["limit"])
# python -m profiling.sampling run app.py   # PEP 799, Tachyon

Этот код запустится только на 3.15: на более старых версиях lazy import и распаковка в comprehension дают SyntaxError, а frozendict — NameError.

Сроки поддержки версий Python

Каждая версия живёт около пяти лет. Сначала она получает обычные исправления ошибок и регулярные патч-выпуски (с 3.13 — два года), затем только исправления безопасности до конца срока. После этого версия считается end-of-life: уязвимости в ней больше никто не закрывает.

ВерсияРелизКонец поддержкиСтатус в октябре 2026
2.72010январь 2020не поддерживается
3.9октябрь 2020октябрь 2025не поддерживается
3.10октябрь 2021октябрь 2026поддержка заканчивается
3.11октябрь 2022октябрь 2027только безопасность
3.12октябрь 2023октябрь 2028только безопасность
3.13октябрь 2024октябрь 2029исправления ошибок
3.14октябрь 2025октябрь 2030исправления ошибок
3.15октябрь 2026октябрь 2031новейшая

Актуальный статус каждой ветки публикуется на странице Status of Python versions в Python Developer's Guide. Перед выбором версии для долгоживущего проекта стоит заглянуть туда.

Какую версию Python ставить

Для обучения и новых проектов — последнюю стабильную, сейчас Python 3.15. Аргумент «возьму проверенную 3.10» не работает: в октябре 2026 она перестаёт получать даже исправления безопасности, а учить язык по версии, которая уходит, значит потом переучиваться. Внутри Python 3 совместимость хорошая: код для старой версии почти всегда работает на новой, а вот обратное неверно.

Исключения бывают. Если нужная библиотека ещё не выпустила колёса под свежую версию (такое случается в первые недели после октябрьского релиза у пакетов с расширениями на C), возьмите предыдущую — 3.14. На сервере с долгим сроком жизни ориентируйтесь на версию из репозиториев дистрибутива или ставьте нужную через менеджер uv. Главное правило — не выбирать версию, у которой до конца поддержки меньше года.

СитуацияЧто ставить
Учите язык с нуляпоследнюю стабильную (3.15)
Новый проектпоследнюю или предпоследнюю
Библиотека не поддерживает новинкупредыдущую минорную
Старый проект на 3.10 и нижепланировать переход на поддерживаемую версию
Код на Python 2переносить на Python 3

Как узнать версию Python

В терминале достаточно одной команды. На macOS и Linux обычно используется python3, на Windows — python или лаунчер py.

$ python3 --version
Python 3.12.3        # старая версия — пора обновиться

$ python3 -V
Python 3.15.0

На Windows лаунчер показывает все установленные версии сразу, а uv — версии, которые он видит и может поставить:

py --list
uv python list

Изнутри программы версию даёт модуль sys. Кортеж sys.version_info удобно сравнивать, чтобы скрипт сам проверял, подходит ли ему интерпретатор:

import sys

print(sys.version)            # полная строка с датой сборки
print(sys.version_info[:3])   # например (3, 15, 0)

if sys.version_info < (3, 10):
    raise SystemExit("Нужен Python 3.10 или новее")

Если команда python3 --version показывает не ту версию, которую вы ставили, значит в PATH первым найден другой интерпретатор. Проверить, какой именно, можно командой which python3 на macOS и Linux или where python на Windows.

Несколько версий на одном компьютере

Держать рядом 3.13 и 3.15 — нормально: каждая ставится в свою папку. Удобнее всего управлять ими через uv: uv python install 3.15 скачивает версию, а uv python pin 3.15 закрепляет её за проектом в файле .python-version. Системный Python на Linux лучше не трогать и не обновлять вручную — на нём работают утилиты самой ОС.

Минимальную версию проекта указывают в pyproject.toml, в поле requires-python. Тогда установщик пакетов не даст поставить проект на неподходящий интерпретатор.

[project]
name = "expenses"
version = "0.1.0"
requires-python = ">=3.15"

Итог

Актуальные версии Python — ветка 3, из них новейшая — 3.15 с ленивым импортом, frozendict и UTF-8 по умолчанию. Python 2 закончился в 2020 году, 3.10 уходит с поддержки в октябре 2026, поэтому учиться и начинать проекты стоит на свежей версии. Проверить свою — python3 --version. В курсе каждая тема заканчивается блоком «Что нового в 3.10–3.15», так что изменения версий разобраны на практике.

Частые вопросы

Что такое IDLE Python 3.10 64-bit в меню Пуск?

Это встроенная простая среда разработки, которую ставит установщик с python.org; в названии указаны версия интерпретатора и разрядность. Если там 3.10, у вас стоит версия, поддержка которой заканчивается, — лучше поставить свежую.

Можно ли обновить Python 3.12 до 3.15 поверх?

Минорные версии ставятся рядом, а не поверх: после установки 3.15 старая остаётся, и её можно удалить отдельно. Библиотеки для новой версии нужно установить заново или пересоздать виртуальное окружение.

Чем отличается 64-bit от 32-bit версии?

64-битная версия может использовать больше памяти и подходит для всех современных компьютеров; 32-битную берут только для очень старых систем.

Зачем нужны альфа- и бета-версии?

Это предварительные сборки следующей версии для тестирования библиотек и проектов; для учёбы и работы ставьте только финальные релизы.

Разберите тему на видео

Эта тема подробно разобрана с практикой в курсе «Python 3.15: от новичка до профи».

Перейти к курсу