Стабильный релиз Python 3.15.0

Python 3.15.0 — новая основная версия языка программирования Python, содержащая множество новых функций и оптимизаций по сравнению с Python 3.14. В этот релиз вошли 5643 коммита от 1012 контрибьюторов.

Логотип Python 3.15: фиолетовое сердце с «3.15» синим и жёлтым цветом, фланкированное синей и жёлтой змеями, молниями, розовыми облаками и лавровыми ветвями

Основные новые функции серии 3.15 по сравнению с 3.14

Ключевые новые функции и изменения в Python 3.15:

Улучшения интерпретатора

  • PEP 661: новый встроенный тип sentinel
  • PEP 686: Python теперь использует UTF-8 в качестве кодировки по умолчанию
  • PEP 798: распаковка в comprehensions
  • PEP 810: явный ленивый импорт модулей для ускорения времени запуска
  • PEP 814: новый встроенный тип frozendict
  • PEP 829: файлы конфигурации при запуске пакета
  • Экспериментальный JIT компилятор значительно улучшен: 7–8% прироста производительности в геометрическом среднем на x86-64 Linux по сравнению со стандартным интерпретатором, и 11–12% ускорение на AArch64 macOS по сравнению с tail-calling интерпретатором
  • Улучшенные сообщения об ошибках

Значительные улучшения стандартной библиотеки

  • PEP 799: выделенный пакет профилирования для организации инструментов профилирования Python
  • PEP 799: Tachyon — профайлер статистического sampling'а высокой частоты
  • Больше цвета

Новые функции для типизации

  • PEP 728: TypedDict с типизированными дополнительными элементами
  • PEP 747: аннотирование типов форм с помощью TypeForm
  • PEP 800: непересекающиеся базы в системе типов

Улучшения C API

  • PEP 782: новый C API PyBytesWriter для создания объекта Python bytes
  • PEP 788: защита от финализации в C API
  • PEP 803, 820, 793: стабильный ABI для free-threaded сборок и связанный C API

Изменения при компиляции

  • PEP 831: frame pointers включены по умолчанию для улучшенной наблюдаемости на уровне системы

Изменения релиза

Больше информации об изменениях в Python 3.15 доступно в What's new in Python 3.15.

Внимание пользователям macOS 27.0 с IDLE или tkinter

При запуске IDLE или других GUI приложений, использующих модуль tkinter, эти приложения могут зависать при использовании команды меню приложения, которая открывает диалог (например, команды IDLE About IDLE, Settings и Open Module), в результате чего появляется вращающееся колесико с необходимостью нажать Force Quit.

Проблема связана с изменением поведения операционной системы в macOS 27.0, которое, как предполагается, влияет на все текущие версии графического набора инструментов Tk и, таким образом, на модуль tkinter во всех текущих версиях Python.

Если вы зависите от приложений на основе Tk (например, IDLE) на macOS, возможно, стоит рассмотреть отложенное обновление до macOS 27.0 до появления решения Tk или macOS. Следите за обновлениями в issue #158053.

Больше ресурсов

И что-то совершенно другое

Для празднования нового Python 3.15 Барри Варшоу подготовил сюрприз!

Я придумал создать небольшую TUI игру-приключение, которая проведёт вас через What's New in Python 3.15. Представляю вам «whatsnewt»:

Из README:

TUI текстовое приключение по новинкам Python 3.15.

Вы просыпаетесь в Startup Foyer, где-то внутри интерпретатора, и пробиваетесь к Release Gate. По пути вас ждут восемнадцать головоломок, и каждая из них — это реальная особенность версии 3.15, которую вам действительно нужно использовать. Вы не просто отвечаете на скучные вопросы, вы на самом деле пишете и запускаете код на интерпретаторе Python 3.15.

Некоторые головоломки требуют проверки типов, и в этих случаях ответы проверяются pyrefly, который является зависимостью именно по этой причине, и результат цитирует то, что тот скажет.

Самый простой способ играть:

uvx --python 3.15 whatsnewt

И да, есть пасхальные яйца

Наслаждайтесь новым релизом

Спасибо всем многочисленным волонтёрам, которые помогают сделать разработку Python и эти релизы возможными! Рассмотрите возможность поддержки наших усилий через волонтёрство или организационное пожертвование в Python Software Foundation.

Большое спасибо Георги Кер и Мари Нордин за логотип Python 3.15!

А также огромное спасибо Sovereign Tech Agency за поддержку работы Хьюго ван Кемменада в качестве менеджера релизов для Python 3.14 и 3.15 через программу Sovereign Tech Fellowship.

Полный Changelog

macOS

Скачать установщик macOS

Windows

Скачать Python install manager

Исходный код

Скачать сжатый XZ архив исходного кода

Версия Операционная система Описание Размер файла Sigstore SBOM SHA-256 контрольная сумма
Gzipped архив исходного кода Исходный код 41.7 MB .sigstore SPDX 438596cac081036d3c1d532ab7e7335eeb35567bc961749a0d5797176db0db68
XZ сжатый архив исходного кода Исходный код 34.0 MB .sigstore SPDX ba4bed1ba346b916890b76d9e320451420aa69f6408997d33c66482eeae3d575
Android embeddable пакет (aarch64) Android 23.1 MB .sigstore 571e4cf4e0aee3d1ab54a52ca3d4e6845b85ec0bb327f7debfb873172f445dab
Android embeddable пакет (x86_64) Android 23.4 MB .sigstore 2413d51948d612cf42baefba25295bb83c2ed84df5726af6fe5bde2dec5d87e7
iOS XCframework iOS 80.6 MB .sigstore 68e98ab35cc0643ba3a227a8c7768da45c5e67dbe1bc26598537e96680fd19
Установщик macOS macOS для macOS 10.15 и позднее 84.9 MB .sigstore 7c7e7eca61cbfa5f0c6f80cd594cddbd9fa1efebaec43edd492f4e8b3fb87e3
Установщик Windows (64-bit) Windows Рекомендуется 43.3 MB .sigstore SPDX 67d9a63eb145a34aa939f02eadbf8c57f21fcdd6decb901ccac578d2d1f01d6f
Установщик Windows (32-bit) Windows 41.6 MB .sigstore SPDX 222f79df7d2d5653871c09aef73dd77623514a356ca7f4a4f3ba5b9217e55e8a
Установщик Windows (ARM64) Windows 42.6 MB .sigstore SPDX bb1c5123cc63d7bb37962ea7bf65e2b06389be9e5d48b6b532346d42ae487c4f
Windows embeddable пакет (64-bit) Windows 13.1 MB .sigstore SPDX a6999bcbcbe56f937159ef79c2630260eca99f65f7860bc5cd20430324079a44
Windows embeddable пакет (32-bit) Windows 11.4 MB .sigstore SPDX da1ca8f1a491444b2a227b898caa9c44537ac27dcf27cff58347f3b4119f79ad
Windows embeddable пакет (ARM64) Windows 12.4 MB .sigstore SPDX abedaa8460572f9bade5e332db5ee0dc95c2dbf6c8dec687a1f03c3e6cd7f7d4
Windows release manifest Windows Установите с помощью 'py install 3.15' 15.0 KB .sigstore ebbd6a12b77ee2cbba5bf9fbb034c609c8336877823f7989126be10a237c11df