Стандартная оболочка в порядке, но есть четыре альтернативы, которые предлагают недостающие функции.

Одним из основных преимуществ Python по сравнению со многими другими языками является то, что он поставляется с интерактивной оболочкой.
Это особенно полезно для исследовательских задач, например. исследовательский анализ данных или отладка. Стандартная оболочка в порядке, но есть четыре альтернативы, которые предлагают недостающие функции. Давайте начнем!
1. Стандартная оболочка, усиленная богатым

Rich — это библиотека Python для форматированного текста и красивого форматирования в терминале. Его можно установить через pip install rich . Вместо того, чтобы использовать другую оболочку, вы можете заставить свою оболочку выполнять эти две строки в стандартной оболочке:
from rich import pretty, inspect, traceback as tb pretty.install(); tb.install(show_locals=False)
Как только вы это сделаете, вы будете вознаграждены цветным изображением 🌈
2. IPython

IPython — это интерактивная оболочка Python, известная большинству из Jupyter Notebooks. Его можно установить через pip install ipython . Вы запускаете его через консоль через ipython .
Вы сразу поймете, что подсказка изменилась с >>> на In [1]. Конечно, вы можете настроить его:
IPython дает вам автозаполнение, вызванное Tab и цветными ошибками:


IPython имеет несколько преимуществ по сравнению с традиционной консолью:
- Цветной ввод и сообщения об ошибках. Вам будет намного легче увидеть, когда вы начали ввод строки или числа.
- Автозаполнение: это не суперпричудливо, но, по крайней мере, вам не нужно постоянно вводить длинные строки.
- История блокировки. Довольно часто вы хотите вернуться к предыдущему вводу и изменить/выполнить его снова. Для однострочного ввода это нормально, но если у вас есть определение функции с вложенными циклами, стандартная оболочка просто показывает вам каждую строку. IPython, напротив, обрабатывает весь блок как один вход, а это означает, что вам нужно реже нажимать стрелку вверх. Это большое дело для меня.
- Команды IPython: вы можете использовать
clear, чтобы получить чистое окно.
Вы также можете настроить Django для использования оболочки IPython. Конечно, вы также можете установить Rich в оболочке IPython, чтобы получить цветной вывод.
3. БПитон

bpython — это интерактивная оболочка с множеством функций автодополнения. Его можно установить через pip install bpython, а запустить его можно через bpython. Автозаполнение срабатывает, когда вы печатаете, и дает удивительно полезные подсказки под вашим курсором в поле. Самая сумасшедшая часть — это помощь в определении функции:

Более того, эта помощь подстраивается под размер вашего терминала:

Лучше всего это видно в действии:
Подводя итог, можно сказать, что у bpython есть одно основное преимущество по сравнению с оболочкой по умолчанию и IPython: автодополнение/текст справки. Для меня это убийственная функция. Он также имеет настройки параметры, и вы можете использовать bpython с Django.
Однако есть и минусы:
- Скорость: кажется, что при наборе текста возникает небольшая задержка. Всего доли секунды, но заметно. Я ненавижу это.
- Windows: из-за использования библиотеки curses я ожидаю, что у пользователей Windows возникнут проблемы с ее использованием. Вроде бы можно, но официально bpython не поддерживается.
- История отсутствующих блоков: это открытая проблема с 2014 года.
4. ПтПитон

Это очень похоже на bpython по типу поддерживаемых функций, но ptpython явно использует другую цветовую тему. В отличие от bpython, он поддерживает историю блоков.
Мне не нравится цветовая тема, но вы можете изменить ее, нажав F2. К сожалению, что-то, кажется, работает не так, как ожидалось. Предлагают соларизованный темный, но на соляризованный темный не похоже 😢
Краткое содержание
Вы можете импортировать богатые в любую интерактивную оболочку. По этой причине я не включил его в следующее резюме.

Мне больше всего нравится bpython, но отсутствующая история блоков (выпуск 22) является для меня препятствием. ptpython — следующий лучший вариант, но я ненавижу эту тему. Поэтому я довольно часто использую IPython.
Я люблю писать о разработке программного обеспечения и технологиях 🤩 Не пропустите обновления: Получить мою бесплатную рассылку по электронной почте 📧 или подпишитесь на Medium ✍️, если вы еще этого не сделали — и то, и другое поощряет меня писать больше 🤗
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.