Spec-Zone.ru › Python 3.13

IDLE — редактор и оболочка Python

Исходный код: Lib/idlelib/

IDLE — это интегрированная среда разработки и обучения Python.

IDLE обладает следующими возможностями:

  • кроссплатформенность: работает практически одинаково в Windows, Unix и macOS
  • окно оболочки Python (интерактивный интерпретатор) с подсветкой вводимого кода, вывода и сообщений об ошибках
  • многооконный текстовый редактор с несколькими уровнями отмены, подсветкой кода Python, интеллектуальными отступами, подсказками вызовов, автодополнением и другими возможностями
  • поиск в любом окне, замена в окнах редактора и поиск в нескольких файлах (grep)
  • отладчик с постоянными точками останова, пошаговым выполнением и просмотром глобальных и локальных пространств имён
  • настройки, браузеры и другие диалоговые окна

Меню

В IDLE есть два основных типа окон: окно оболочки и окно редактора. Одновременно могут быть открыты несколько окон редактора. В Windows и Linux у каждого окна есть собственное верхнее меню. В описании каждого меню ниже указано, с каким типом окна оно связано.

Окна вывода, например используемые для команды «Правка => Найти в файлах», являются разновидностью окон редактора. В настоящее время у них такое же верхнее меню, но другое заголовок по умолчанию и контекстное меню.

В macOS используется одно меню приложения. Его содержимое динамически меняется в зависимости от выбранного окна. В нём есть меню IDLE, а некоторые описанные ниже пункты перемещены в соответствии с рекомендациями Apple.

Меню «Файл» (оболочка и редактор)

Создать файл

Создать новое окно редактирования файла.

Открыть…

Открыть существующий файл с помощью диалогового окна «Открыть».

Открыть модуль…

Открыть существующий модуль (выполняется поиск в sys.path).

Недавние файлы

Открыть список недавно использовавшихся файлов. Щёлкните файл, чтобы открыть его.

Обозреватель модулей

Показать функции, классы и методы текущего файла редактора в виде дерева. В оболочке сначала откройте модуль.

Обозреватель путей

Показать каталоги sys.path, модули, функции, классы и методы в виде дерева.

Сохранить

Сохранить текущее окно в связанный с ним файл, если он есть. В заголовке окон, изменённых после открытия или последнего сохранения, перед названием и после него отображается *. Если связанного файла нет, вместо этого выполните команду «Сохранить как».

Сохранить как…

Сохранить текущее окно с помощью диалогового окна «Сохранить как». Сохранённый файл станет новым связанным файлом окна. (Если в файловом менеджере настроено скрытие расширений, текущее расширение не будет отображаться в поле имени файла. Если в новом имени файла нет символа «.», для файлов Python и текстовых файлов будут добавлены расширения «.py» и «.txt» соответственно; однако в macOS Aqua расширение «.py» добавляется ко всем файлам.)

Сохранить копию как…

Сохранить текущее окно в другой файл, не меняя связанный с ним файл. (См. примечание о расширениях имён файлов выше, в разделе «Сохранить как».)

Печать окна

Напечатать содержимое текущего окна на принтере по умолчанию.

Закрыть окно

Закрыть текущее окно (если это несохранённый файл редактора, предложить сохранить его; если это несохранённая оболочка, предложить завершить выполнение). Вызов exit() или close() в окне оболочки также закрывает оболочку. Если это единственное окно, IDLE также завершит работу.

Выйти из IDLE

Закрыть все окна и завершить работу IDLE (предложить сохранить несохранённые окна редактора).

Меню «Правка» (оболочка и редактор)

Отменить

Отменить последнее изменение в текущем окне. Можно отменить не более 1000 изменений.

Повторить

Повторить последнее отменённое изменение в текущем окне.

Выделить всё

Выделить всё содержимое текущего окна.

Вырезать

Скопировать выделенный фрагмент в системный буфер обмена, а затем удалить его.

Копировать

Скопировать выделенный фрагмент в системный буфер обмена.

Вставить

Вставить содержимое системного буфера обмена в текущее окно.

Функции буфера обмена также доступны в контекстных меню.

Найти…

Открыть диалоговое окно поиска с множеством параметров

Найти снова

Повторить последний поиск, если он был.

Найти выделенное

Найти текущую выделенную строку, если она есть.

Найти в файлах…

Открыть диалоговое окно поиска по файлам. Поместить результаты в новое окно вывода.

Заменить…

Открыть диалоговое окно поиска и замены.

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

Переместить курсор в начало указанной строки и сделать эту строку видимой. Если указана строка за концом файла, перейти к концу файла. Снять выделение и обновить сведения о строке и столбце.

Показать варианты дополнения

Открыть прокручиваемый список существующих имён для выбора. См. раздел Автодополнение ниже, в разделе «Редактирование и навигация».

Дополнить слово

Дополнить введённый префикс до полного слова в том же окне; повторите команду, чтобы получить другой вариант.

Показать подсказку вызова

После открывающей скобки функции открыть небольшое окно с подсказками по её параметрам. См. раздел Подсказки вызовов ниже, в разделе «Редактирование и навигация».

Показать парные скобки

Выделить окружающую пару скобок.

Меню «Формат» (только окно редактора)

Форматировать абзац

Переформатировать текущий абзац в блоке комментария или многострочной строке, ограниченный пустыми строками, либо выделенную строку в строке. Все строки абзаца будут отформатированы так, чтобы их длина была меньше N столбцов; по умолчанию N равен 72.

Увеличить отступ блока

Сдвинуть выделенные строки вправо на величину отступа (по умолчанию — 4 пробела).

Уменьшить отступ блока

Сдвинуть выделенные строки влево на величину отступа (по умолчанию — 4 пробела).

Закомментировать блок

Вставить ## перед выделенными строками.

Раскомментировать блок

Удалить начальные # или ## из выделенных строк.

Заменить пробелы табуляциями

Заменить начальные последовательности пробелов символами табуляции. (Примечание: для отступов в коде Python рекомендуется использовать блоки из 4 пробелов.)

Заменить табуляции пробелами

Заменить все символы табуляции соответствующим количеством пробелов.

Переключить табуляцию

Открыть диалоговое окно для переключения между отступами пробелами и табуляциями.

Новая ширина отступа

Открыть диалоговое окно для изменения ширины отступа. Общепринятое в сообществе Python значение по умолчанию — 4 пробела.

Удалить конечные пробелы

Удалить пробелы и другие символы-разделители после последнего непробельного символа строки, применив str.rstrip к каждой строке, в том числе к строкам внутри многострочных строк. За исключением окон оболочки, удалить лишние символы перевода строки в конце файла.

Меню «Запуск» (только окно редактора)

Запустить модуль

Выполнить Проверить модуль. Если ошибок нет, перезапустить оболочку, чтобы очистить среду, а затем выполнить модуль. Вывод отображается в окне оболочки. Обратите внимание: для вывода необходимо использовать print или write. По завершении выполнения оболочка остаётся активной и отображает приглашение. Теперь можно интерактивно изучить результат выполнения. Это похоже на запуск файла с помощью python -i file в командной строке.

Запустить… с настройками

То же, что и Запустить модуль, но модуль запускается с пользовательскими настройками. Аргументы командной строки дополняют sys.argv так, как если бы их передали в командной строке. Модуль можно запустить в оболочке без перезапуска.

Проверить модуль

Проверить синтаксис модуля, открытого в окне редактора. Если модуль не сохранён, IDLE предложит пользователю сохранить его или сохранит автоматически — в зависимости от выбранной настройки на вкладке «Общие» диалогового окна параметров IDLE. При синтаксической ошибке в окне редактора будет указано её приблизительное местоположение.

Оболочка Python

Открыть окно оболочки Python или вывести его на передний план.

Меню «Оболочка» (только окно оболочки)

Показать последнее перезапускание

Прокрутить окно оболочки к последнему перезапуску оболочки.

Перезапустить оболочку

Перезапустить оболочку, чтобы очистить среду и сбросить отображение и обработку исключений.

Предыдущая команда из истории

Перебирать более ранние команды в истории, соответствующие текущему вводу.

Следующая команда из истории

Перебирать более поздние команды в истории, соответствующие текущему вводу.

Прервать выполнение

Остановить выполняющуюся программу.

Меню «Отладка» (только окно оболочки)

Перейти к файлу/строке

Проверить текущую строку с курсором и строку выше на наличие имени файла и номера строки. Если они найдены, открыть файл, если он ещё не открыт, и показать указанную строку. Используйте эту команду для просмотра исходных строк, упомянутых в трассировке исключения, а также строк, найденных командой «Найти в файлах». Команда также доступна в контекстном меню окна оболочки и окон вывода.

Отладчик (переключатель)

Если функция включена, код, введённый в оболочке или запущенный из редактора, будет выполняться под отладчиком. В редакторе точки останова можно устанавливать с помощью контекстного меню. Эта функция ещё не завершена и носит экспериментальный характер.

Просмотр стека

Показать трассировку стека последнего исключения в виде дерева с доступом к локальным и глобальным переменным.

Автоматически открывать просмотр стека

Включить или отключить автоматическое открытие средства просмотра стека при необработанном исключении.

Меню «Настройки» (оболочка и редактор)

Настроить IDLE

Открыть диалоговое окно настроек и изменить параметры шрифтов, отступов, привязок клавиш, цветовых тем текста, стартовых окон и их размеров, дополнительных источников справки и расширений. В macOS откройте диалоговое окно настроек, выбрав пункт «Настройки» в меню приложения. Дополнительные сведения см. в разделе Настройка параметров в разделе «Справка и настройки».

Большинство параметров конфигурации применяются ко всем окнам или ко всем будущим окнам. Перечисленные ниже параметры относятся только к активному окну.

Показать/скрыть контекст кода (только окно редактора)

Открыть в верхней части окна редактирования панель, показывающую контекст блока кода, прокрученного за верхнюю границу окна. См. раздел Контекст кода ниже, в разделе «Редактирование и навигация».

Показать/скрыть номера строк (только окно редактора)

Открыть слева от окна редактирования столбец с номерами строк. По умолчанию эта функция отключена; её можно изменить в настройках (см. раздел Настройка параметров).

Увеличить/восстановить высоту

Переключить окно между обычным размером и максимальной высотой. По умолчанию начальный размер составляет 40 строк на 80 символов, если он не изменён на вкладке «Общие» диалогового окна настройки IDLE. Максимальная высота окна для экрана определяется при первом увеличении окна на этом экране: для этого окно на мгновение разворачивается на весь экран. Изменение параметров экрана может сделать сохранённую высоту недействительной. Переключение не действует, если окно развёрнуто на весь экран.

Меню «Окно» (оболочка и редактор)

Содержит список всех открытых окон; выберите окно, чтобы вывести его на передний план (при необходимости восстановив его из свёрнутого состояния).

Меню «Справка» (оболочка и редактор)

О программе IDLE

Показать версию, сведения об авторских правах, лицензию, список участников разработки и другую информацию.

Справка по IDLE

Показать этот документ по IDLE с описанием пунктов меню, основных приёмов редактирования и навигации, а также других полезных советов.

Документация Python

Открыть локальную документацию Python, если она установлена, или запустить веб-браузер и открыть docs.python.org с последней версией документации Python.

Демонстрация Turtle

Запустить модуль turtledemo с примерами кода Python и рисунками черепашки.

Дополнительные источники справки можно добавить здесь с помощью диалогового окна настройки IDLE на вкладке «Общие». Дополнительные сведения о пунктах меню «Справка» см. в подразделе Источники справки ниже.

Контекстные меню

Откройте контекстное меню, щёлкнув правой кнопкой мыши в окне (в macOS — щёлкнув при нажатой клавише Control). В контекстных меню, как и в меню «Правка», доступны стандартные функции буфера обмена.

Вырезать

Скопировать выделенный фрагмент в системный буфер обмена, а затем удалить его.

Копировать

Скопировать выделенный фрагмент в системный буфер обмена.

Вставить

Вставить содержимое системного буфера обмена в текущее окно.

В окнах редактора также доступны функции работы с точками останова. Строки с установленными точками останова помечены особым образом. Точки останова действуют только при запуске под отладчиком. Точки останова для файла сохраняются в каталоге .idlerc пользователя.

Установить точку останова

Установить точку останова на текущей строке.

Удалить точку останова

Удалить точку останова в этой строке.

В окнах оболочки и вывода также доступны следующие команды.

Перейти к файлу/строке

То же, что и в меню «Отладка».

В окне оболочки также доступно сворачивание вывода, описанное ниже в подразделе Окно оболочки Python.

Свернуть

Если курсор находится над строкой вывода, свернуть весь вывод между расположенным выше кодом и расположенным ниже приглашением до метки «Свёрнутый текст».

Редактирование и навигация

Окна редактора

IDLE может открывать окна редактора при запуске в зависимости от настроек и способа запуска IDLE. В дальнейшем используйте меню «Файл». Для одного и того же файла можно открыть только одно окно редактора.

В строке заголовка отображаются имя файла, полный путь и версии Python и IDLE, используемые в этом окне. В строке состояния отображаются номер строки («Ln») и номер столбца («Col»). Нумерация строк начинается с 1, а столбцов — с 0.

IDLE предполагает, что файлы с известным расширением .py* содержат код Python, а остальные файлы — нет. Для запуска кода Python используйте меню «Запуск».

Сочетания клавиш

Курсор ввода в IDLE — это тонкая вертикальная черта между позициями символов. При вводе символов курсор ввода и всё справа от него сдвигается на один символ вправо, а новый символ вставляется на освободившееся место.

Некоторые клавиши, не соответствующие символам, перемещают курсор и, возможно, удаляют символы. Удалённый текст не помещается в буфер обмена, но в IDLE есть список отмены действий. Везде, где в этом документе упоминаются клавиши, «C» означает клавишу Control в Windows и Unix и клавишу Command в macOS. (Кроме того, все такие описания предполагают, что привязки клавиш не изменялись.)

  • Клавиши со стрелками перемещают курсор на один символ или строку.
  • C-LeftArrow и C-RightArrow перемещают курсор на одно слово влево или вправо.
  • Home и End перемещают курсор в начало или конец строки.
  • Page Up и Page Down перемещают курсор вверх или вниз на один экран.
  • C-Home и C-End перемещают курсор в начало или конец файла.
  • Backspace и Del (или C-d) удаляют предыдущий или следующий символ.
  • C-Backspace и C-Del удаляют одно слово слева или справа.
  • C-k удаляет («вырезает») всё справа.

Могут работать стандартные сочетания клавиш (например, C-c для копирования и C-v для вставки). Сочетания клавиш выбираются в диалоговом окне настройки IDLE.

Автоматические отступы

После оператора, открывающего блок, следующая строка получает отступ в 4 пробела (в окне оболочки Python — одну табуляцию). После некоторых ключевых слов (break, return и т. д.) отступ следующей строки уменьшается. При вводе начального отступа клавиша Backspace удаляет до 4 пробелов, если они есть. Клавиша Tab вставляет пробелы (в окне оболочки Python — одну табуляцию); их количество зависит от ширины отступа. В настоящее время из-за ограничений Tcl/Tk табуляция ограничена четырьмя пробелами.

См. также команды увеличения и уменьшения отступа блока в меню «Формат».

Поиск и замена

Любое выделение становится целью поиска. Однако работают только выделения внутри одной строки, поскольку поиск выполняется только в пределах строк, из которых удалён завершающий символ перевода строки. Если установлен флажок [x] Regular expression, цель интерпретируется согласно модулю Python re.

Автодополнение

По запросу и при наличии вариантов автодополнение предлагается для имён модулей, атрибутов классов или функций и имён файлов. Каждый способ запроса показывает окно автодополнения с существующими именами. (Исключение — автодополнение клавишей Tab, описанное ниже.) В любом окне можно изменить дополняемое имя и выделенный в списке элемент, вводя и удаляя символы, нажимая клавиши Up, Down, PageUp, PageDown, Home и End либо один раз щёлкнув в окне. Закройте окно клавишами Escape, Enter, двойным нажатием клавиши Tab или щелчком за пределами окна. Двойной щелчок внутри окна выбирает элемент и закрывает окно.

Один из способов открыть окно — ввести символ клавиши и подождать заданное время. По умолчанию это 2 секунды; интервал можно изменить в диалоговом окне настроек. (Чтобы отключить автоматические всплывающие окна, задайте большую задержку в миллисекундах, например 100000000.) Для имён импортированных модулей или атрибутов классов и функций введите «.». Чтобы дополнить имя файла в корневом каталоге, сразу после открывающей кавычки введите os.sep или os.altsep. (В Windows сначала можно указать диск.) Для перехода во вложенный каталог введите имя каталога и разделитель.

Вместо ожидания или после закрытия окна можно сразу открыть окно автодополнения, выбрав пункт «Показать варианты дополнения» в меню «Правка». По умолчанию для этого используется сочетание C-space. Если перед открытием окна ввести префикс нужного имени, будет показано первое совпадение или наиболее близкий вариант. Результат будет таким же, как если бы префикс был введён после появления окна. Если выбрать «Показать варианты дополнения» после кавычки, вместо файлов корневого каталога будут предложены имена файлов в текущем каталоге.

Нажатие клавиши Tab после префикса обычно действует так же, как команда «Показать варианты дополнения». (Если префикса нет, увеличивается отступ.) Однако, если префиксу соответствует только один вариант, он сразу добавляется в текст редактора без открытия окна.

Вызов команды «Показать варианты дополнения» или нажатие клавиши Tab после префикса вне строки и без предшествующей точки открывает окно с ключевыми словами, встроенными именами и доступными именами уровня модуля.

При редактировании кода в редакторе (в отличие от оболочки) список доступных имён уровня модуля можно расширить, запустив код и после этого не перезапуская оболочку. Это особенно полезно после добавления импортов в начало файла. Кроме того, увеличится число возможных вариантов автодополнения атрибутов.

Изначально в окнах автодополнения не отображаются имена, начинающиеся с «_», и имена модулей, не включённые в «__all__». Доступ к скрытым именам можно получить, введя «_» после «.», до или после открытия окна.

Подсказки вызовов

Подсказка вызова автоматически отображается, когда после имени доступной функции вводится символ (. Выражение с именем функции может содержать точки и индексы. Подсказка вызова отображается, пока её не щёлкнут, курсор не выйдет за пределы области аргументов или не будет введён символ ). Если курсор находится в области аргументов определения, выберите в меню «Правка» пункт «Показать подсказку вызова» или нажмите соответствующее сочетание клавиш, чтобы отобразить подсказку.

Подсказка вызова содержит сигнатуру функции и её строку документации до первой пустой строки или пятой непустой строки включительно. (Для некоторых встроенных функций сигнатура недоступна.) Символ «/» или «*» в сигнатуре означает, что предшествующие или следующие аргументы можно передавать только позиционно или только по имени (как именованные аргументы). Подробности могут меняться.

В оболочке доступные функции зависят от того, какие модули были импортированы в пользовательский процесс (включая модули, импортированные самим Idle) и какие определения были выполнены после последнего перезапуска.

Например, перезапустите оболочку и введите itertools.count(. Появится подсказка вызова, поскольку Idle импортирует itertools в пользовательский процесс для собственных нужд. (Это может измениться.) Введите turtle.write( — подсказка не появится. Сам Idle не импортирует turtle. Пункт меню и сочетание клавиш также ничего не дадут. Введите import turtle. После этого turtle.write( будет показывать подсказку вызова.

В редакторе операторы импорта не действуют, пока файл не будет запущен. Запустить файл может потребоваться после написания операторов импорта, добавления определений функций или открытия существующего файла.

Контекст кода

В окне редактора с кодом Python можно включить или отключить контекст кода, чтобы показать или скрыть панель в верхней части окна. Эта панель закрепляет начальные строки блоков кода, например строки, начинающиеся с ключевых слов class, def или if, которые иначе прокрутились бы за пределы видимой области. Размер панели будет увеличиваться или уменьшаться по мере необходимости, чтобы отображать все текущие уровни контекста, но не больше максимального числа строк, заданного в диалоговом окне настройки IDLE (по умолчанию — 15). Если строк контекста нет, а функция включена, будет отображаться одна пустая строка. Щелчок по строке на панели контекста переместит её в верхнюю часть редактора.

Цвет текста и фона панели контекста можно настроить на вкладке «Подсветка» диалогового окна настройки IDLE.

Окно оболочки

В оболочке IDLE можно вводить, редактировать и повторно вызывать полные инструкции. (Большинство консолей и терминалов работают только с одной физической строкой за раз.)

Чтобы выполнить однострочную инструкцию, нажмите Return, когда курсор находится в любом месте этой строки. Если строка продолжается с помощью обратной косой черты (\), курсор должен находиться на последней физической строке. Чтобы выполнить многострочную составную инструкцию, после неё введите пустую строку.

Вставленный в оболочку код не компилируется и, возможно, не выполняется до нажатия клавиши Return, как описано выше. Перед этим вставленный код можно отредактировать. Если вставить в оболочку несколько инструкций, возникнет ошибка SyntaxError, поскольку несколько инструкций компилируются как одна.

Строки, содержащие RESTART, означают, что пользовательский процесс выполнения был перезапущен. Это происходит при аварийном завершении пользовательского процесса, при запросе перезапуска в меню оболочки или при запуске кода в окне редактора.

Описанные в предыдущих подразделах возможности редактирования работают при интерактивном вводе кода. Окно оболочки IDLE также реагирует на следующие клавиши:

  • C-c пытается прервать выполнение инструкции (это может не сработать).
  • C-d закрывает оболочку, если нажать эти клавиши при приглашении >>>.
  • Alt-p и Alt-n (в macOS — C-p и C-n) подставляют в текущее приглашение предыдущую или следующую из ранее введённых инструкций, соответствующую уже введённому тексту.
  • Return, нажатая, когда курсор находится в любой предыдущей инструкции, добавляет её к уже введённому в приглашении тексту.

Цвета текста

По умолчанию в Idle используется чёрный текст на белом фоне, но текст с особыми значениями отображается цветом. В оболочке это вывод оболочки, ошибка оболочки, вывод пользователя и ошибка пользователя. В коде Python — в приглашении оболочки или редакторе — это ключевые слова, имена встроенных классов и функций, имена после class и def, строки и комментарии. В любом текстовом окне особым цветом отображаются курсор (если он есть), найденный текст (если возможно) и выделенный текст.

IDLE также выделяет мягкие ключевые слова match, case и _ в инструкциях сопоставления с образцом. Однако эта подсветка не идеальна и в некоторых редких случаях будет работать неверно, в том числе для некоторых _ в образцах case.

Окрашивание текста выполняется в фоновом режиме, поэтому иногда можно увидеть текст без подсветки. Чтобы изменить цветовую схему, используйте вкладку «Подсветка» диалогового окна настройки IDLE. Пользователь не может настраивать отметки строк с точками останова в редакторе, а также текст во всплывающих окнах и диалоговых окнах.

Запуск и выполнение кода

При запуске с параметром -s IDLE выполнит файл, на который указывают переменные среды IDLESTARTUP или PYTHONSTARTUP. Сначала IDLE проверяет IDLESTARTUP; если присутствует IDLESTARTUP, выполняется указанный файл. Если отсутствует IDLESTARTUP, IDLE проверяет PYTHONSTARTUP. Файлы, на которые указывают эти переменные среды, удобно использовать для хранения функций, часто применяемых из оболочки IDLE, или для выполнения операторов import, импортирующих распространённые модули.

Кроме того, Tk также загружает файл запуска, если он существует. Обратите внимание: файл Tk загружается безусловно. Этот дополнительный файл — .Idle.py — ищется в домашнем каталоге пользователя. Операторы в этом файле выполняются в пространстве имён Tk, поэтому этот файл не подходит для импорта функций, которые будут использоваться из оболочки Python в IDLE.

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

IDLE можно запустить из командной строки с различными параметрами. Общий синтаксис:

python -m idlelib [options] [file ...]

Доступны следующие параметры:

-c <command>

Выполнить указанную команду Python в окне оболочки. Например, передайте -c "print('Hello, World!')". В Windows внешние кавычки должны быть двойными, как показано.

-d

Включить отладчик и открыть окно оболочки.

-e

Открыть окно редактора.

-h

Вывести справочное сообщение с допустимыми сочетаниями параметров и завершить работу.

-i

Открыть окно оболочки.

-r <file>

Выполнить указанный файл в окне оболочки.

-s

Выполнить файл запуска (указанный переменными среды IDLESTARTUP или PYTHONSTARTUP) перед открытием окна оболочки.

-t <title>

Задать заголовок окна оболочки.

-

Прочитать и выполнить стандартный ввод в окне оболочки. Этот параметр должен быть последним перед любыми аргументами.

Если указаны аргументы:

  • Если используется -, -c или -r, все аргументы помещаются в sys.argv[1:], а sys.argv[0] устанавливается в '', '-c' или '-r' соответственно. Окно редактора не открывается, даже если это поведение по умолчанию, заданное в диалоговом окне Параметры.
  • В противном случае аргументы считаются файлами, которые нужно открыть для редактирования, а sys.argv отражает аргументы, переданные непосредственно IDLE.

Сбой при запуске

IDLE использует сокет для связи между процессом графического интерфейса IDLE и процессом выполнения пользовательского кода. Соединение необходимо устанавливать при каждом запуске или перезапуске оболочки. (Перезапуск обозначается разделительной линией с надписью «ПЕРЕЗАПУСК».) Если пользовательскому процессу не удаётся подключиться к процессу графического интерфейса, обычно отображается окно ошибки Tk с сообщением «не удаётся подключиться», которое направляет пользователя сюда. Затем процесс завершает работу.

Одна из конкретных причин сбоя соединения в Unix-системах — неправильно настроенные правила маскарадинга в сетевых параметрах системы. При запуске IDLE из терминала будет выведено сообщение, начинающееся с ** Invalid host:. Допустимое значение — 127.0.0.1 (idlelib.rpc.LOCALHOST). Диагностировать проблему можно, выполнив tcpconnect -irv 127.0.0.1 6543 в одном окне терминала и tcplisten <same args> в другом.

Распространённая причина сбоя — созданный пользователем файл с тем же именем, что и у модуля стандартной библиотеки, например random.py или tkinter.py. Если такой файл находится в том же каталоге, что и запускаемый файл, IDLE не может импортировать файл из стандартной библиотеки. В настоящее время проблему можно решить, переименовав пользовательский файл.

Хотя теперь это случается реже, чем раньше, антивирусная программа или брандмауэр могут блокировать соединение. Если программу нельзя настроить на разрешение соединения, её придётся отключить, чтобы IDLE работала. Разрешить это внутреннее соединение безопасно, поскольку на внешних портах данные не видны. Аналогичную проблему может вызвать неправильная настройка сети, блокирующая соединения.

Иногда работе IDLE мешают проблемы с установкой Python: могут конфликтовать несколько версий или для единственной установленной версии может требоваться доступ администратора. Если устранить конфликт невозможно или запускать программу от имени администратора нельзя либо не хочется, проще всего полностью удалить Python и начать заново.

Проблему может вызвать зависший процесс pythonw.exe. В Windows проверьте это в диспетчере задач и завершите его, если он есть. Иногда перезапуск, вызванный аварийным завершением программы или прерыванием с клавиатуры (control-C), не может установить соединение. Закрытие окна ошибки или выбор пункта «Перезапустить оболочку» в меню «Оболочка» может устранить временную проблему.

При первом запуске IDLE пытается прочитать пользовательские файлы конфигурации в ~/.idlerc/ (~ — это домашний каталог пользователя). При возникновении проблемы должно отобразиться сообщение об ошибке. Если не считать случайных сбоев диска, таких проблем можно избежать, не редактируя файлы вручную. Вместо этого используйте диалоговое окно настройки в меню «Параметры». Если в пользовательском файле конфигурации уже возникла ошибка, лучшим решением может быть удалить его и заново задать параметры в диалоговом окне настроек.

Если IDLE завершает работу без сообщения и была запущена не из консоли, попробуйте запустить её из консоли или терминала (python -m idlelib) и проверьте, появится ли сообщение об ошибке.

В системах на базе Unix с tcl/tk версии ниже 8.6.11 (см. About IDLE) некоторые символы в некоторых шрифтах могут вызывать сбой tk с сообщением в терминале. Это может произойти как при запуске IDLE для редактирования файла с таким символом, так и позднее, при вводе такого символа. Если обновить tcl/tk невозможно, перенастройте IDLE на использование более подходящего шрифта.

Выполнение пользовательского кода

За редкими исключениями, результат выполнения кода Python в IDLE должен совпадать с результатом выполнения того же кода стандартным способом — непосредственно в Python в текстовой системной консоли или окне терминала. Однако различия в интерфейсе и работе иногда влияют на видимые результаты. Например, sys.modules содержит больше элементов, а threading.active_count() возвращает 2 вместо 1.

По умолчанию IDLE запускает пользовательский код в отдельном процессе ОС, а не в процессе пользовательского интерфейса, в котором работают оболочка и редактор. В процессе выполнения она заменяет sys.stdin, sys.stdout и sys.stderr объектами, которые получают ввод из окна оболочки и отправляют туда вывод. Исходные значения, хранящиеся в sys.__stdin__, sys.__stdout__ и sys.__stderr__, не изменяются, но могут быть None.

Отправка вывода print из одного процесса в текстовый виджет другого медленнее, чем вывод в системный терминал в том же процессе. Особенно заметна разница при выводе нескольких аргументов, поскольку строка для каждого аргумента, каждый разделитель и символ новой строки отправляются отдельно. При разработке это обычно не проблема, но если требуется ускорить вывод в IDLE, сформируйте и объедините всё, что нужно вывести вместе, а затем выведите одну строку. Для объединения полей и строк могут помочь как форматирующие строки, так и str.join().

Стандартные потоки IDLE не наследуются дочерними процессами, созданными в процессе выполнения, независимо от того, запускаются ли они непосредственно пользовательским кодом или такими модулями, как multiprocessing. Если такой дочерний процесс использует input из sys.stdin или print либо write для sys.stdout или sys.stderr, IDLE следует запускать в окне командной строки. (В Windows используйте python или py вместо pythonw или pyw.) Тогда дочерний процесс будет подключён к этому окну для ввода и вывода.

Если пользовательский код сбросит sys, например с помощью importlib.reload(sys), изменения IDLE будут потеряны, и ввод с клавиатуры и вывод на экран перестанут работать правильно.

Когда оболочка находится в фокусе, она управляет клавиатурой и экраном. Обычно это незаметно, однако функции, напрямую обращающиеся к клавиатуре и экрану, работать не будут. К ним относятся системно-зависимые функции, определяющие, была ли нажата клавиша, и, если да, какая именно.

Код IDLE, выполняющийся в процессе выполнения, добавляет в стек вызовов кадры, которых в противном случае там не было бы. IDLE оборачивает sys.getrecursionlimit и sys.setrecursionlimit, чтобы уменьшить влияние дополнительных кадров стека.

Если пользовательский код вызывает SystemExit напрямую или через sys.exit, IDLE возвращается к приглашению оболочки, а не завершает работу.

Пользовательский вывод в оболочке

Результат вывода текста программой зависит от соответствующего устройства вывода. Когда IDLE выполняет пользовательский код, sys.stdout и sys.stderr связаны с областью отображения оболочки IDLE. Некоторые её возможности унаследованы от базового текстового виджета Tk. Другие добавлены программно. Когда это имеет значение, оболочка рассчитана на разработку, а не на рабочий запуск программ.

Например, оболочка никогда не отбрасывает вывод. Программа, отправляющая в неё неограниченный объём данных, со временем заполнит память и вызовет ошибку памяти. В отличие от этого, некоторые системные текстовые окна сохраняют только последние n строк вывода. Например, консоль Windows сохраняет от 1 до 9999 строк — это значение задаёт пользователь, а по умолчанию оно равно 300.

Текстовый виджет Tk, а значит и оболочка IDLE, отображает символы (кодовые точки) из подмножества BMP (основной многоязычной плоскости) Юникода. То, какие символы отображаются корректным глифом, а какие — замещающим прямоугольником, зависит от операционной системы и установленных шрифтов. Символы табуляции заставляют следующий текст начинаться после ближайшей позиции табуляции. (Такие позиции расположены через каждые 8 «символов».) Символы новой строки перемещают следующий текст на новую строку. Другие управляющие символы игнорируются или отображаются как пробел, прямоугольник либо иным образом — в зависимости от операционной системы и шрифта. (Перемещение текстового курсора по такому выводу клавишами со стрелками может приводить к неожиданному поведению интервалов.)

>>> s = 'a\tb\a<\x02><\r>\bc\nd'  # Enter 22 chars.
>>> len(s)
14
>>> s  # Display repr(s)
'a\tb\x07<\x02><\r>\x08c\nd'
>>> print(s, end='')  # Display s as is.
# Result varies by OS and font.  Try it.

Для интерактивного отображения значений выражений используется функция repr. Она возвращает изменённую версию входной строки, в которой управляющие коды, некоторые кодовые точки BMP и все кодовые точки вне BMP заменены escape-кодами. Как показано выше, это позволяет определить символы в строке независимо от того, как они отображаются.

Обычный вывод и вывод ошибок обычно отделяются (помещаются на отдельные строки) от ввода кода и друг от друга. Для каждого из них используются разные цвета подсветки.

В трассировках SyntaxError обычный символ «^», указывающий место обнаружения ошибки, заменяется подсветкой текста цветом ошибки. Если код, запущенный из файла, вызывает другие исключения, можно щёлкнуть правой кнопкой мыши по строке трассировки, чтобы перейти к соответствующей строке в редакторе IDLE. При необходимости файл будет открыт.

В оболочке есть специальная возможность сворачивать строки вывода в метку «Свёрнутый текст». Это делается автоматически, если вывод содержит больше N строк (по умолчанию N = 50). Значение N можно изменить в разделе PyShell на странице General диалогового окна Settings. Вывод с меньшим числом строк можно свернуть, щёлкнув по нему правой кнопкой мыши. Это может быть полезно для длинных строк, замедляющих прокрутку.

Свёрнутый вывод раскрывается на месте двойным щелчком по метке. Также его можно отправить в буфер обмена или открыть в отдельном окне просмотра, щёлкнув по метке правой кнопкой мыши.

Разработка приложений tkinter

IDLE намеренно отличается от стандартного Python, чтобы упростить разработку программ tkinter. Введите import tkinter as tk; root = tk.Tk() в стандартном Python — и ничего не произойдёт. Введите то же самое в IDLE — и появится окно tk. В стандартном Python для отображения окна нужно также ввести root.update(). IDLE выполняет эквивалентные действия в фоновом режиме примерно 20 раз в секунду, то есть каждые 50 миллисекунд. Затем введите b = tk.Button(root, text='button'); b.pack(). В стандартном Python снова ничего не изменится на экране, пока не будет введено root.update().

Большинство программ tkinter запускает root.mainloop(), который обычно не возвращает управление, пока приложение tk не будет уничтожено. Если программа запущена с помощью python -i или из редактора IDLE, приглашение оболочки >>> не появится, пока не вернётся mainloop(); к этому времени взаимодействовать будет уже не с чем.

При запуске программы tkinter из редактора IDLE можно закомментировать вызов mainloop. Тогда приглашение оболочки появится сразу, и можно будет взаимодействовать с работающим приложением. Нужно лишь не забыть снова включить вызов mainloop при запуске в стандартном Python.

Запуск без дочернего процесса

По умолчанию IDLE выполняет пользовательский код в отдельном дочернем процессе через сокет, использующий внутренний интерфейс обратной петли. Это соединение не видно извне, и данные не отправляются в интернет и не принимаются из него. Если программа брандмауэра всё же выдаёт предупреждение, его можно проигнорировать.

Если установить соединение через сокет не удаётся, Idle уведомит вас об этом. Иногда такие сбои носят временный характер, но если они не прекращаются, причиной может быть блокировка соединения брандмауэром или неправильная настройка системы. Пока проблема не устранена, Idle можно запускать с параметром командной строки -n.

Если IDLE запущена с параметром командной строки -n, она будет работать в одном процессе и не создаст дочерний процесс, выполняющий сервер выполнения Python RPC. Это может быть полезно, если Python не удаётся создать дочерний процесс или интерфейс сокета RPC на вашей платформе. Однако в этом режиме пользовательский код не изолирован от самой IDLE. Кроме того, среда не перезапускается при выборе команды Run/Run Module (F5). Если код был изменён, необходимо вызвать reload() для затронутых модулей и повторно импортировать отдельные элементы (например, from foo import baz), чтобы изменения вступили в силу. По этим причинам, если это возможно, предпочтительно запускать IDLE с дочерним процессом, используемым по умолчанию.

Устарело начиная с версии 3.4.

Справка и настройки

Источники справки

Пункт меню справки «Справка по IDLE» отображает отформатированную версию главы об IDLE из справочника библиотеки в формате HTML. Результат показывается в доступном только для чтения текстовом окне tkinter и напоминает отображение в веб-браузере. Перемещайтесь по тексту с помощью колёсика мыши, полосы прокрутки или клавиш со стрелками вверх и вниз. Либо нажмите кнопку TOC (оглавление) и выберите заголовок раздела в открывшемся окне.

Пункт меню справки «Документация Python» открывает обширные справочные материалы, включая учебные пособия, доступные по адресу docs.python.org/x.y, где «x.y» — версия Python, запущенная в данный момент. Если в системе есть автономная копия документации (это может быть параметром установки), вместо неё откроется эта копия.

Выбранные URL-адреса можно в любой момент добавить в меню справки или удалить из него на вкладке General диалогового окна Configure IDLE.

Настройка параметров

Параметры шрифтов, подсветки, клавиш и общие параметры можно изменить с помощью пункта Configure IDLE в меню Option. Пользовательские настройки, отличающиеся от стандартных, сохраняются в каталоге .idlerc в домашнем каталоге пользователя. Проблемы, вызванные некорректными пользовательскими файлами конфигурации, устраняются редактированием или удалением одного или нескольких файлов в .idlerc.

На вкладке Font изучите образец текста, чтобы увидеть, как гарнитура и размер шрифта влияют на отображение разных символов на разных языках. Измените образец, добавив другие интересующие вас символы. Используйте образец для выбора моноширинных шрифтов. Если с некоторыми символами возникают проблемы в оболочке или редакторе, добавьте их в начало образца и попробуйте сначала изменить размер, а затем шрифт.

На вкладке Highlights and Keys выберите встроенную или пользовательскую цветовую тему и набор клавиш. Чтобы использовать более новую встроенную цветовую тему или набор клавиш в старых версиях IDLE, сохраните их как новую пользовательскую тему или набор клавиш — тогда они будут доступны и в старых версиях IDLE.

IDLE в macOS

В разделе «Системные настройки: Dock» можно установить для параметра «Предпочитать вкладки при открытии документов» значение «Всегда». Этот параметр несовместим с графическим интерфейсом tk/tkinter, используемым IDLE, и нарушает работу некоторых её функций.

Расширения

В IDLE предусмотрена поддержка расширений. Настройки расширений можно изменить на вкладке Extensions диалогового окна настроек. Дополнительную информацию см. в начале файла config-extensions.def в каталоге idlelib. Единственное расширение, включённое по умолчанию в текущей версии, — zzdummy; это пример, который также используется для тестирования.

idlelib — реализация приложения IDLE

Исходный код: Lib/idlelib

Пакет Lib/idlelib реализует приложение IDLE. Информацию об использовании IDLE см. в остальных разделах этой страницы.

Описание файлов в idlelib приведено в idlelib/README.txt. Откройте его в каталоге idlelib или выберите пункт Help => About IDLE в меню IDLE. В этом файле также сопоставлены пункты меню IDLE с кодом, который их реализует. За исключением файлов, перечисленных в разделе «Startup», код idlelib является «внутренним» в том смысле, что изменения функций можно переносить в предыдущие версии (см. PEP 434).

© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/idle.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API