Команда Python for Devs подготовила перевод обзора новых возможностей REPL в Python 3.14. Теперь автодополнение и подсветка синтаксиса работают прямо в терминале, а цветовую тему можно настроить под себя.
Python 3.14 приносит улучшения в интерактивную оболочку (REPL), делая её более современной, наглядной и удобной. Новые возможности превращают REPL в мощный инструмент для экспериментов. Хотите проверить идею на лету, попробовать новую библиотеку или отладить сложный фрагмент кода? REPL даст мгновенную обратную связь — без файлов, без настройки, просто пишите код и запускайте.
До недавнего времени стандартный REPL в CPython был предельно минималистичным: быстрым, надёжным и доступным везде, но без тех удобств, которые есть в таких инструментах, как IPython или ptpython. Ситуация начала меняться в Python 3.13, когда по умолчанию стала использоваться современная оболочка на базе PyREPL. Она добавила многострочное редактирование, улучшенную навигацию по истории и более умное автодополнение по Tab
.
После прочтения этой статьи вы узнаете, что:
В REPL Python 3.14 автодополнение включено по умолчанию. Достаточно нажать Tab в контексте инструкции import, чтобы увидеть возможные варианты.
REPL подсвечивает синтаксис Python в реальном времени, если ваш терминал поддерживает ANSI-цвета.
В Python 3.14 можно настроить цветовую тему с помощью экспериментального API
colorize.settheme()
и скриптаPYTHONSTARTUP
.Подсветку можно отключить, установив переменные окружения
NO_COLOR=1
илиPYTHON_COLORS=0
.
Автодополнение имён модулей при import делает работу в интерактивном режиме быстрее и удобнее, особенно при обучении и исследовательских задачах. А цветная подсветка улучшает читаемость кода и помогает быстрее замечать опечатки и синтаксические ошибки.
Интерактивный REPL до Python 3.14
Когда вы впервые устанавливаете Python, один из самых быстрых способов его попробовать — это интерактивный REPL (Read–Eval–Print Loop), запускаемый прямо в командной строке или терминале. REPL — это оболочка, в которой можно писать код на Python, тут же его запускать и сразу видеть результат. Это среда быстрого старта, идеально подходящая для экспериментов, обучения и отладки без необходимости создавать и запускать отдельные скрипты.
Многие годы стандартный REPL в CPython оставался максимально лёгким и минималистичным, предлагая совсем немного возможностей. На этом фоне инструменты вроде IPython, bpython и ptpython давали куда более богатый интерактивный опыт.
Однако в последние годы ситуация начала меняться. Начиная с Python 3.13, стандартный REPL основан на pyrepl из проекта PyPy. Этот инструмент написан на Python, спроектирован с учётом расширяемости и безопасности, а также предоставляет более современную интерактивную оболочку с целым набором функций:
Цвет по умолчанию: цветные подсказки и трассировки ошибок. Поведение можно настраивать с помощью переменных окружения
PYTHON_COLORS
илиNO_COLOR
.Быстрые команды REPL: используйте
exit
,quit
,help
иclear
как команды, а не как вызовы функций с круглыми скобками.Встроенный браузер справки: нажмите F1, чтобы открыть справочник в pager’е и просматривать документацию Python, модулей и объектов.
Постоянная история команд: нажмите F2, чтобы открыть историю команд в pager’е и сохранять её между сессиями — удобно копировать и переиспользовать код.
Многострочное редактирование: редактируйте и перезапускайте целые блоки кода — функции, классы, циклы — единым куском. Структура блока при этом сохраняется в истории.
Надёжная вставка и режим paste: можно безопасно вставлять целые скрипты или большие куски кода. При желании доступен специальный режим вставки (F3), хотя обычно прямая вставка работает без проблем.
Умное автодополнение по Tab: предложения обновляются по мере набора и скрывают лишнее, уменьшая шум.
В Python 3.14 REPL сделал ещё один шаг вперёд и получил следующие улучшения:
расширенное автодополнение, которое теперь охватывает имена модулей и подмодулей в инструкциях
import
;подсветку синтаксиса в реальном времени — теперь ваш код в REPL выглядит так же удобно для чтения, как в любимом редакторе или IDE.
Чтобы воспользоваться новыми возможностями, ничего дополнительно устанавливать или настраивать не нужно — достаточно, чтобы ваш терминал поддерживал вывод ANSI-цветов.
Улучшения автодополнения
В Python 3.14 логика автодополнения расширена: теперь REPL распознаёт контексты import
и предлагает имена модулей или пакетов в зависимости от введённого текста. Если вы набираете инструкцию import
или from ... import
и нажимаете Tab, REPL просматривает путь импорта и показывает доступные имена модулей, совпадающие с введённым фрагментом.
Например, если набрать import
, а затем дважды нажать Tab, вы получите полный список всех доступных в данный момент модулей и пакетов. Если вы начнёте вводить имя модуля, например pat
, и нажмёте Tab, REPL автоматически дополнит его до pathlib
, так как это единственное совпадение с введённым текстом.
Аналогично, если ввести что-то вроде import lo
и нажать Tab после lo
, вы получите сообщение, что совпадений несколько. В этом случае можно нажать Tab ещё раз, чтобы увидеть полный список подходящих имён, или продолжить ввод, чтобы сделать поиск более точным:

В конструкции from ... import ...
можно получить список подходящих модулей или пакетов после from
, а также подмодулей или подпакетов после import
. Это позволяет быстро находить и дополнять имена модулей прямо в интерактивном режиме:

На практике конструкция from ... import ...
также используется для импорта конкретных объектов, таких как функции и классы, из указанного модуля. Однако для имён самих объектов автодополнение пока не работает:

Если вы вводите from sys import ...
и начинаете печатать version
, нажатие Tab не даст результата. Это ограничение связано с тем, что для таких подсказок REPL пришлось бы импортировать модуль и проанализировать его содержимое, чтобы предложить возможные варианты.
Подсветка синтаксиса
Теперь REPL подсвечивает синтаксис Python в реальном времени по мере ввода кода. Это улучшает читаемость и помогает быстрее различать разные элементы Python-кода: ключевые слова, строки, комментарии и другие синтаксические конструкции. Все они теперь отображаются разными цветами по умолчанию:

В этом примере видно, как REPL подсвечивает синтаксис прямо во время набора кода. Такая подсветка позволяет быстро замечать синтаксические ошибки ещё в процессе написания.
Вот пример того, как выглядят другие конструкции с новой подсветкой:

Эта функция включена по умолчанию при запуске REPL в терминале, поддерживающем цвета, например Terminal.app, iTerm2 или Windows Terminal, с оболочками Bash, Zsh или PowerShell.
Подсветка использует ту же цветовую схему, что и цветные трассировки ошибок, появившиеся в Python 3.13. Тема по умолчанию обеспечивает контрастное выделение с помощью стандартных 16-цветных ANSI-кодов, что гарантирует широкую совместимость с большинством терминалов.
Внутри REPL выполняет токенизацию кода по мере его ввода и применяет цветовые коды к тексту. Использование ANSI-последовательностей позволяет обойтись без специального графического интерфейса — всё работает в любом текстовом терминале, поддерживающем эти коды.
В результате ключевые слова отображаются одним цветом, строковые литералы — другим, комментарии — третьим и так далее.
Настройка цветовой темы
В Python 3.14 по умолчанию для подсветки синтаксиса используются следующие цвета и параметры форматирования:
Элемент синтаксиса |
Цвет по умолчанию |
---|---|
Приглашение (prompt) |
|
Ключевое слово |
|
Soft keyword |
|
Встроенное имя |
|
Комментарий |
|
Строка |
|
Число |
|
Оператор |
|
Можно использовать экспериментальный API, вызывая colorize.settheme()
, чтобы программно изменить цветовую тему. Этот вызов можно делать прямо в сессии REPL или подключить его автоматически, настроив переменную окружения PYTHONSTARTUP
и создав собственный файл инициализации.
Важно: API
colorize.settheme()
пока экспериментальный и может измениться в будущих версиях Python. Этот статус прямо указан на странице What’s new in Python 3.14?, так что не стоит считать интерфейс и его поведение полностью стабильными.
Для начала выполните следующую команду:
Windows / Linux / macOS:
$ export PYTHONSTARTUP=~/.pythonstartup
Затем создайте файл .pythonstartup
в домашней директории и добавьте в него следующий код:
try:
from dataclasses import replace
from _colorize import ANSIColors, default_theme, set_theme
except ImportError:
pass
else:
theme = default_theme.copy_with(
syntax=replace(
default_theme.syntax,
keyword=ANSIColors.BOLD_YELLOW,
string=ANSIColors.INTENSE_BLUE,
number=ANSIColors.RED,
comment=ANSIColors.GREY,
),
)
set_theme(theme)
Кратко о том, что делает этот скрипт:
Импортирует
replace()
из модуляdataclasses
, а также APIcolorize
(включаяANSIColors
,defaulttheme
иset_theme
)Использует конструкцию
try … except
, чтобы пропустить выполнение в старых версиях Python или окружениях без_colorize
, предотвращая ошибкиСоздаёт новую тему, копируя
default_theme
и переопределяя цвета для ключевых слов, строк, чисел и комментариевВызывает
set_theme()
, чтобы применить новые цвета до появления первого приглашения
После сохранения файла откройте новое окно терминала. Вот как будет выглядеть сравнение между стандартной темой и вашей кастомной:

Слева — тема по умолчанию, справа — ваша кастомная. Какая нравится больше? Вы можете поэкспериментировать с другими комбинациями цветов и создать собственную тему с любимыми оттенками и форматированием текста. Попробуйте!
Если захотите вернуться к стандартной теме, выполните команду unset PYTHONSTARTUP
и перезапустите REPL.
Переключение цветов
Вы можете отключить подсветку синтаксиса, полностью отключив поддержку цвета. Для этого установите следующие переменные окружения:
NO_COLOR — установите в любое непустое значение, чтобы отключить всю цветную разметку. Эта переменная имеет приоритет над
FORCE_COLOR
.PYTHON_COLORS — установите в
0
, чтобы отключить цвета (включая подсветку синтаксиса), или в1
, чтобы включить их. Эта переменная переопределяетNO_COLOR
для интерпретатора Python.
Если ваш терминал или среда не поддерживает цвета, REPL автоматически переключится на вывод обычного текста.
Возврат к классическому REPL
Если вы захотите вернуться к базовому режиму REPL, можно воспользоваться переменной окружения PYTHON_BASIC_REPL. Установите её в любое значение, чтобы запустить классический REPL без функций PyREPL. Учтите, что это отключит подсветку синтаксиса, навигацию по истории, режим вставки и другие современные возможности.
Пример настройки:
Windows / Linux / macOS:
$ PYTHON_BASIC_REPL=1 python
После запуска этих команд вы получите классический REPL — лёгкий и с минимальным набором возможностей.
Русскоязычное сообщество про Python

Друзья! Эту статью перевела команда Python for Devs — канала, где каждый день выходят самые свежие и полезные материалы о Python и его экосистеме. Подписывайтесь, чтобы ничего не пропустить!
Заключение
Мы познакомились с новыми возможностями REPL в Python 3.14: расширенным автодополнением для инструкций import
и подсветкой синтаксиса в реальном времени. Теперь REPL подсказывает имена модулей и пакетов во время ввода и визуально различает элементы синтаксиса Python с помощью цветов.
Вы также настроили цветовую тему под свои предпочтения и узнали, как при необходимости отключить подсветку.
Следить за развитием REPL особенно полезно разработчикам, которые используют оболочку для прототипирования, отладки или изучения библиотек.
После прочтения этой статьи вы научились:
Использовать автодополнение имён модулей и пакетов в инструкциях
import
в REPL Python 3.14Пользоваться подсветкой синтаксиса в реальном времени для улучшения читаемости кода и поиска ошибок
Настраивать цветовую тему REPL с помощью экспериментального API
colorize.settheme()
и стартового скриптаОтключать цветной вывод или возвращаться к классическому REPL с помощью переменных окружения
С этими навыками вы сможете эффективнее использовать новые возможности REPL, повышая продуктивность и комфорт при интерактивной работе с Python.
Tailogs
Отличная статья, благодарю за информацию!