idle.md
1> **Источник:** https://python-all.ru/3.5/library/idle.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 25.5. IDLE89**Исходный код:** [Lib/idlelib/](https://python-all.ru/src/3.5/Lib/idlelib)1011---1213IDLE – это интегрированная среда разработки и обучения Python.1415IDLE имеет следующие возможности:1617- написан на 100% чистом Python с использованием GUI-тулкита [`tkinter`](https://python-all.ru/3.5/library/tkinter.html#module-tkinter)18- кроссплатформенность: работает почти одинаково на Windows, Unix и Mac OS X19- окно оболочки Python (интерактивный интерпретатор) с цветовой подсветкой вводимого кода, вывода и сообщений об ошибках20- многооконный текстовый редактор с множественной отменой, подсветкой синтаксиса Python, умными отступами, подсказками вызова, автозавершением и другими функциями21- поиск в любом окне, замена в окнах редактора и поиск по нескольким файлам (grep)22- отладчик с постоянными точками останова, пошаговым выполнением и просмотром глобального и локального пространства имён23- настройки, обозреватели и другие диалоговые окна2425## 25.5.1. Меню2627IDLE имеет два основных типа окон: окно Shell и окно Редактора. Можно открыть несколько окон редактора одновременно. Окна вывода, например, используемые для Edit / Find in Files, являются подтипом окон редактора. В настоящее время они имеют то же верхнее меню, что и окна редактора, но другой заголовок по умолчанию и контекстное меню.2829Меню IDLE динамически меняются в зависимости от того, какое окно выбрано. Каждое описанное ниже меню указывает, с каким типом окна оно связано.3031### 25.5.1.1. Меню File (Shell и Редактор)3233**Новый файл**3435Создаёт новое окно для редактирования файла.3637**Открыть…**3839Открывает существующий файл с помощью диалога «Открыть».4041**Последние файлы**4243Открывает список последних файлов. Щелчок по файлу открывает его.4445**Открыть модуль…**4647Открывает существующий модуль (поиск по sys.path).4849**Обозреватель классов**5051Показывает функции, классы и методы в текущем файле редактора в виде древовидной структуры. В оболочке сначала нужно открыть модуль.5253**Обозреватель путей**5455Показывает каталоги из sys.path, модули, функции, классы и методы в виде dревовидной структуры.5657**Сохранить**5859Сохраняет текущее окно в соответствующий файл, если таковой имеется. В окнах, которые были изменены после открытия или последнего сохранения, в начале и в конце заголовка окна отображается символ \*. Если соответствующий файл отсутствует, выполняется команда «Сохранить как».6061**Сохранить как…**6263Сохранить текущее окно через диалог «Сохранить как». Сохранённый файл становится новым связанным файлом для окна.6465**Сохранить копию как…**6667Сохранить текущее окно в другой файл, не меняя связанный файл.6869**Печать окна**7071Выводит текущее окно на принтер по умолчанию.7273**Закрыть**7475Закрывает текущее окно (предлагает сохранить, если есть несохранённые изменения).7677**Выход**7879Закрывает все окна и завершает работу IDLE (предлагает сохранить несохранённые окна).8081### 25.5.1.2. Меню Edit (Shell и Редактор)8283**Отменить**8485Отменяет последнее изменение в текущем окне. Можно отменить до 1000 изменений.8687**Повторить**8889Повторяет последнюю отменённую операцию в текущем окне.9091**Вырезать**9293Копирует выделение в системный буфер обмена, затем удаляет выделение.9495**Копировать**9697Копирует выделение в системный буфер обмена.9899**Вставить**100101Вставляет содержимое системного буфера обмена в текущее окно.102103Функции работы с буфером обмена также доступны в контекстных меню.104105**Выделить всё**106107Выделяет всё содержимое текущего окна.108109**Найти…**110111Открывает диалог поиска с множеством параметров112113**Найти снова**114115Повторяет последний поиск, если он был выполнен.116117**Найти выделение**118119Ищет текущую выделенную строку, если она есть.120121**Найти в файлах…**122123Открывает диалог поиска по файлам. Результаты выводятся в новое окно.124125**Заменить…**126127Открывает диалог поиска и замены.128129**Перейти к строке**130131Перемещает курсор на указанный номер строки и делает эту строку видимой.132133**Показать автодополнения**134135Открывает прокручиваемый список для выбора ключевых слов и атрибутов. См. раздел «Автодополнение» в разделе «Советы» ниже.136137**Дополнить слово**138139Разворачивает введённый префикс до полного слова в том же окне; повторное нажатие даёт другое дополнение.140141**Показать подсказку вызова**142143После незакрытой скобки функции открывает небольшое окно с подсказками по параметрам функции.144145**Показать окружающие скобки**146147Подсвечивает окружающую скобку.148149### 25.5.1.3. Меню Format (только окно Редактора)150151**Увеличить отступ выделенного фрагмента**152153Сдвигает выделенные строки вправо на ширину отступа (по умолчанию 4 пробела).154155**Уменьшить отступ выделенного фрагмента**156157Сдвигает выделенные строки влево на ширину отступа (по умолчанию 4 пробела).158159**Закомментировать выделенный фрагмент**160161Вставляет ## перед выделенными строками.162163**Раскомментировать выделенный фрагмент**164165Удаляет начальные символы # или ## из выделенных строк.166167**Преобразовать в табуляцию**168169Превращает170171*начальные*172173последовательности пробелов в табуляцию. (Рекомендуется использовать блоки из 4 пробелов для отступов в коде Python.)174175**Преобразовать табуляцию в пробелы**176177Превращает178179*все*180181табуляции в правильное количество пробелов.182183**Переключить режим табуляции**184185Открывает диалог для переключения между отступами пробелами и табуляцией.186187**Новая ширина отступа**188189Открывает диалог для изменения ширины отступа. Принятое по умолчанию значение в сообществе Python – 4 пробела.190191**Форматировать абзац**192193Переформатирует текущий абзац, разделённый пустыми строками, в блоке комментариев или многострочной строке, или выбранную строку внутри строки. Все строки абзаца будут отформатированы так, чтобы длина не превышала N столбцов, где по умолчанию N = 72.194195**Удалить завершающие пробелы**196197Удаляет все пробельные символы после последнего непробельного символа в строке.198199### 25.5.1.4. Меню Run (только окно Редактора)200201**Оболочка Python**202203Открыть или активировать окно оболочки Python.204205**Проверить модуль**206207Проверяет синтаксис модуля, открытого в окне редактора. Если модуль не был сохранён, IDLE предложит сохранить его или выполнит автосохранение в зависимости от настройки на вкладке General диалога Idle Settings. Если есть синтаксическая ошибка, её примерное местоположение указывается в окне редактора.208209**Запустить модуль**210211Выполнить проверку модуля (см. выше). Если ошибок нет, перезапустить оболочку для очистки среды, затем выполнить модуль. Вывод отображается в окне Shell. Обратите внимание, что для вывода требуется использование212213`print`214215или216217`write`218219. По завершении выполнения Shell сохраняет фокус и отображает приглашение. В этот момент можно интерактивно исследовать результаты выполнения. Это похоже на выполнение файла с помощью220221`python -i file`222223в командной строке.224225### 25.5.1.5. Меню Shell (только окно Shell)226227**Просмотр последнего перезапуска**228229Прокручивает окно оболочки к последнему перезапуску оболочки.230231**Перезапустить оболочку**232233Перезапустите оболочку, чтобы очистить окружение.234235**Прервать выполнение**236237Останавливает выполняющуюся программу.238239### 25.5.1.6. Меню Debug (только окно Shell)240241**Перейти к файлу/строке**242243Проверяет текущую строку (на которой находится курсор) и строку над ней на наличие имени файла и номера строки. Если найдено, открывает файл (если ещё не открыт) и показывает эту строку. Используется для просмотра строк исходного кода, указанных в трассировке исключения, и строк, найденных с помощью «Найти в файлах». Также доступно в контекстном меню окна оболочки и окон вывода.244245**Отладчик (вкл/выкл)**246247При активации код, введённый в оболочке или запущенный из редактора, будет выполняться под отладчиком. В редакторе точки останова можно установить через контекстное меню. Эта функция всё ещё не завершена и в некоторой степени экспериментальна.248249**Просмотр стека**250251Показывает трассировку стека последнего исключения в виджете-дереве с доступом к локальным и глобальным переменным.252253**Автоматически открывать просмотр стека**254255Включает/выключает автоматическое открытие просмотра стека при необработанном исключении.256257### 25.5.1.7. Меню Options (Shell и Редактор)258259**Настроить IDLE**260261Открывает диалог настройки и позволяет изменить параметры: шрифты, отступы, сочетания клавиш, цветовые темы текста, окна и размер при запуске, дополнительные источники справки и расширения (см. ниже). В OS X откройте диалог настройки, выбрав «Preferences» в меню приложения. Чтобы использовать новую встроенную цветовую тему (IDLE Dark) в старых версиях IDLE, сохраните её как новую пользовательскую тему.262263Нестандартные пользовательские настройки сохраняются в каталоге .idlerc в домашнем каталоге пользователя. Проблемы, вызванные некорректными файлами конфигурации, решаются редактированием или удалением одного или нескольких файлов в .idlerc.264265**Контекст кода (переключатель) (только окно редактора)**266267Открывает панель в верхней части окна редактора, которая показывает контекст блока кода, ушедшего за верхнюю границу окна.268269### 25.5.1.8. Меню Window (Shell и Редактор)270271**Развернуть по высоте**272273Переключает окно между нормальным размером и максимальной высотой. Начальный размер по умолчанию – 40 строк на 80 символов, если не изменён на вкладке «Общие» в диалоге настройки IDLE.274275Остальная часть этого меню содержит список всех открытых окон; выберите одно, чтобы вывести его на передний план (при необходимости развернув из свёрнутого состояния).276277### 25.5.1.9. Меню Help (Shell и Редактор)278279**О программе IDLE**280281Отображает версию, авторские права, лицензию, список разработчиков и дополнительную информацию.282283**Справка по IDLE**284285Отображает файл справки по IDLE с подробным описанием пунктов меню, основ редактирования и навигации, а также других советов.286287**Документация Python**288289Открывает локальную документацию Python, если она установлена, или запускает веб-браузер и открывает docs.python.org с последней версией документации Python.290291**Демонстрация Turtle**292293Запускает модуль turtledemo с примерами кода Python и рисунками черепашки.294295Дополнительные источники справки можно добавить в диалоге Configure IDLE на вкладке General.296297### 25.5.1.10. Контекстные меню298299Откройте контекстное меню, щелкнув правой кнопкой мыши в окне (Control-щелчок на OS X). Контекстные меню содержат стандартные функции буфера обмена, которые также есть в меню Edit.300301**Вырезать**302303Копирует выделение в системный буфер обмена, затем удаляет выделение.304305**Копировать**306307Копирует выделение в системный буфер обмена.308309**Вставить**310311Вставляет содержимое системного буфера обмена в текущее окно.312313Окна редактора также имеют функции точек останова. Строки с установленной точкой останова специально помечаются. Точки останова действуют только при запуске под отладчиком. Точки останова для файла сохраняются в каталоге .idlerc пользователя.314315**Установить точку останова**316317Устанавливает точку останова на текущей строке.318319**Снять точку останова**320321Снимает точку останова на этой строке.322323Окна Shell и Output имеют следующее.324325**Перейти к файлу/строке**326327То же, что в меню Debug.328329## 25.5.2. Редактирование и навигация330331В этом разделе «C» обозначает клавишу `Control` в Windows и Unix и клавишу `Command` в Mac OS X.332333- `Backspace` удаляет влево; `Del` удаляет вправо334- `C-Backspace` удаляет слово слева; `C-Del` удаляет слово справа335- Клавиши со стрелками и `Page Up`/`Page Down` для перемещения336- `C-LeftArrow` и `C-RightArrow` перемещают по словам337- `Home`/`End` переходят в начало/конец строки338- `C-Home`/`C-End` переходят в начало/конец файла339- Некоторые полезные привязки Emacs унаследованы от Tcl/Tk:340341 > - `C-a` начало строки342 > - `C-e` конец строки343 > - `C-k` вырезать строку (но не помещает её в буфер обмена)344 > - `C-l` центрировать окно вокруг точки вставки345 > - `C-b` переместиться на один символ назад без удаления (обычно для этого также можно использовать клавишу со стрелкой)346 > - `C-f` переместиться на один символ вперёд без удаления (обычно для этого также можно использовать клавишу со стрелкой)347 > - `C-p` подняться на одну строку вверх (обычно для этого также можно использовать клавишу со стрелкой)348 > - `C-d` удалить следующий символ349350Стандартные сочетания клавиш (например, `C-c` для копирования и `C-v` для вставки) могут работать. Сочетания клавиш выбираются в диалоге Configure IDLE.351352### 25.5.2.1. Автоматические отступы353354После оператора, открывающего блок, следующая строка получает отступ в 4 пробела (в окне Python Shell – одна табуляция). После некоторых ключевых слов (break, return и т.д.) отступ следующей строки уменьшается. В начале строки `Backspace` удаляет до 4 пробелов, если они есть. `Tab` вставляет пробелы (в окне Python Shell – одну табуляцию); количество зависит от ширины отступа. В настоящее время из-за ограничений Tcl/Tk табуляция ограничена четырьмя пробелами.355356См. также команды indent/dedent region в меню Edit.357358### 25.5.2.2. Автодополнение359360Автодополнение предоставляется для функций, классов и атрибутов классов – как встроенных, так и определённых пользователем. Автодополнение также предоставляется для имён файлов.361362Окно автодополнения (ACW) открывается после заданной задержки (по умолчанию две секунды) после ввода точки ‘.’ или (в строке) os.sep. Если после одного из этих символов (плюс ноль или более других символов) нажать Tab, ACW откроется немедленно при наличии возможного продолжения.363364Если для введённых символов существует только одно возможное дополнение, `Tab` вставит его без открытия ACW.365366Команда «Show Completions» принудительно открывает окно дополнений; по умолчанию `C-space` открывает окно дополнений. В пустой строке оно будет содержать файлы текущего каталога. На пустой строке оно будет содержать встроенные и определённые пользователем функции и классы в текущих пространствах имён, а также импортированные модули. Если введены какие-то символы, ACW попытается уточнить выбор.367368Если введена строка символов, выделение в окне автодополнения перейдёт к записи, наиболее соответствующей этим символам. Ввод `tab` приведёт к вставке самого длинного однозначного совпадения в окно редактора или оболочки. Два `tab` подряд вставят текущее выделение окна автодополнения, как и Enter или двойной щелчок. Клавиши курсора, Page Up/Down, выбор мышью и колёсико прокрутки работают с окном автодополнения.369370«Скрытые» атрибуты можно получить, введя начало скрытого имени после точки ‘.’, например ‘\_’. Это позволяет получить доступ к модулям с установленным `__all__` или к закрытым атрибутам классов.371372Автодополнение и функция «Expand Word» могут сэкономить много ввода!373374Автодополнение в настоящее время ограничено именами в пространствах имён. Имена в окне редактора, которые не импортированы через `__main__` и [`sys.modules`](https://python-all.ru/3.5/library/sys.html#sys.modules), не будут найдены. Запустите модуль один раз с вашими импортами, чтобы исправить это. Обратите внимание, что IDLE сама помещает довольно много модулей в sys.modules, поэтому многое может быть найдено по умолчанию, например, модуль re.375376Если вам не нравится, что ACW появляется без запроса, просто увеличьте задержку или отключите расширение.377378### 25.5.2.3. Подсказки вызова379380Подсказка вызова отображается, когда после имени *доступной* функции вводится `(`. Выражение имени может содержать точки и индексы. Подсказка вызова остается до тех пор, пока по ней не щелкнуть, курсор не будет перемещен за пределы области аргументов или не будет введено `)`. Когда курсор находится в части аргументов определения, меню или сочетание клавиш отображают подсказку вызова.381382Подсказка вызова состоит из сигнатуры функции и первой строки строки документации. Для встроенных функций без доступной сигнатуры подсказка состоит из всех строк до пятой строки или первой пустой строки. Эти детали могут измениться.383384Набор *доступных* функций зависит от того, какие модули были импортированы в пользовательский процесс, включая импортированные самой IDLE, и какие определения были выполнены после последнего перезапуска.385386Например, перезапустите оболочку и введите `itertools.count(`. Появится подсказка вызова, потому что IDLE импортирует itertools в пользовательский процесс для своих нужд. (Это может измениться.) Введите `turtle.write(` – ничего не появится. IDLE не импортирует turtle. Меню и сочетания клавиш тоже ничего не делают. Введите `import turtle`, и тогда `turtle.write(` сработает.387388В редакторе операторы импорта не действуют до запуска файла. Возможно, стоит запустить файл после написания операторов импорта в начале или сразу запустить существующий файл перед редактированием.389390### 25.5.2.4. Окно Python Shell391392- `C-c` прерывает выполняющуюся команду393- `C-d` отправляет конец файла; закрывает окно, если введено в приглашении `>>>`394- `Alt-/` (расширение слова) также полезно для уменьшения объёма ввода395396 История команд397398 - `Alt-p` извлекает предыдущую команду, соответствующую введенному тексту. На OS X используйте `C-p`.399 - `Alt-n` извлекает следующий. На OS X используйте `C-n`.400 - `Return` на любой предыдущей команде извлекает её401402### 25.5.2.5. Цвета текста403404В IDLE по умолчанию используется чёрный текст на белом фоне, но текст окрашивается в зависимости от смысла. Для Shell это вывод Shell, ошибки Shell, вывод пользователя и ошибки пользователя. Для кода Python, в приглашении Shell или в редакторе, это ключевые слова, имена встроенных классов и функций, имена после `class` и `def`, строки и комментарии. Для любого текстового окна это курсор (когда присутствует), найденный текст (когда возможно) и выделенный текст.405406Окрашивание текста выполняется в фоновом режиме, поэтому иногда может быть виден неокрашенный текст. Чтобы изменить цветовую схему, используйте вкладку «Подсветка» в диалоге настройки IDLE. Разметка строк точек останова отладчика в редакторе и текст во всплывающих окнах и диалогах не настраивается пользователем.407408## 25.5.3. Запуск и выполнение кода409410При запуске с опцией `-s` IDLE выполняет файл, на который ссылаются переменные среды `IDLESTARTUP` или [`PYTHONSTARTUP`](https://python-all.ru/3.5/using/cmdline.html#envvar-PYTHONSTARTUP). IDLE сначала проверяет `IDLESTARTUP`; если `IDLESTARTUP` присутствует, запускается указанный файл. Если `IDLESTARTUP` отсутствует, IDLE проверяет `PYTHONSTARTUP`. Файлы, на которые ссылаются эти переменные среды, удобно использовать для хранения функций, часто используемых из Shell IDLE, или для выполнения операторов импорта общих модулей.411412Кроме того, `Tk` также загружает файл запуска, если он существует. Обратите внимание, что Tk-файл загружается безусловно. Этот дополнительный файл – `.Idle.py`, он ищется в домашнем каталоге пользователя. Операторы в этом файле будут выполняться в пространстве имён Tk, поэтому этот файл не подходит для импорта функций, используемых из Python Shell IDLE.413414### 25.5.3.1. Использование командной строки415416```text417idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...418419-c command run command in the shell window420-d enable debugger and open shell window421-e open editor window422-h print help message with legal combinations and exit423-i open shell window424-r file run file in shell window425-s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window426-t title set title of shell window427- run stdin in shell (- must be last option before args)428```429430Если есть аргументы:431432- Если используется `-`, `-c` или `r`, все аргументы помещаются в `sys.argv[1:...]`, а `sys.argv[0]` устанавливается в `''`, `'-c'` или `'-r'`. Окно редактора не открывается, даже если это выбрано по умолчанию в диалоге Options.433- В противном случае аргументы являются файлами, открытыми для редактирования, и `sys.argv` отражает аргументы, переданные самому IDLE.434435### 25.5.3.2. Различия между IDLE и консолью436437Насколько это возможно, результат выполнения Python-кода в IDLE совпадает с результатом выполнения того же кода в окне консоли. Однако различия в интерфейсе и работе иногда влияют на видимые результаты. Например, `sys.modules` начинается с большего количества записей.438439IDLE также заменяет `sys.stdin`, `sys.stdout` и `sys.stderr` на объекты, которые получают ввод из окна Shell и отправляют вывод в него. Когда это окно находится в фокусе, оно управляет клавиатурой и экраном. Обычно это незаметно, но функции, напрямую обращающиеся к клавиатуре и экрану, работать не будут. Если `sys` сброшен с помощью `importlib.reload(sys)`, изменения IDLE теряются, и такие вещи, как `input`, `raw_input` и `print`, перестанут работать корректно.440441В оболочке IDLE можно вводить, редактировать и вызывать полные инструкции. Некоторые консоли работают только с одной физической строкой за раз. IDLE использует `exec` для выполнения каждой инструкции. В результате `'__builtins__'` всегда определена для каждой инструкции.442443### 25.5.3.3. Запуск без подпроцесса444445По умолчанию IDLE выполняет пользовательский код в отдельном подпроцессе через сокет, использующий внутренний интерфейс loopback. Это соединение не видно извне, и никакие данные не отправляются и не принимаются из Интернета. Если брандмауэр всё равно выдаёт предупреждение, его можно игнорировать.446447Если попытка установить сокетное соединение не удаётся, IDLE уведомит вас. Такие сбои иногда носят временный характер, но если они постоянны, проблема может заключаться либо в блокировке соединения брандмауэром, либо в неправильной конфигурации конкретной системы. Пока проблема не решена, можно запускать IDLE с ключом командной строки -n.448449Если IDLE запущен с ключом командной строки -n, он будет работать в одном процессе и не будет создавать подпроцесс, запускающий RPC-сервер выполнения Python. Это может быть полезно, если Python не может создать подпроцесс или сокетный интерфейс RPC на вашей платформе. Однако в этом режиме пользовательский код не изолирован от самого IDLE. Кроме того, среда не перезапускается при выборе Run/Run Module (F5). Если ваш код был изменён, необходимо выполнить reload() для затронутых модулей и повторно импортировать любые конкретные элементы (например, from foo import baz), чтобы изменения вступили в силу. По этим причинам предпочтительнее запускать IDLE с подпроцессом по умолчанию, если это возможно.450451Устарело с версии 3.4.452453## 25.5.4. Справка и настройки454455### 25.5.4.1. Дополнительные источники справки456457IDLE включает пункт меню справки под названием «Python Docs», который открывает обширные источники справки, включая учебные пособия, доступные на docs.python.org. Выбранные URL-адреса можно в любое время добавлять или удалять из меню справки с помощью диалогового окна Configure IDLE. Для получения дополнительной информации см. пункт справки IDLE в меню справки IDLE.458459### 25.5.4.2. Настройка параметров460461Настройки шрифта, подсветки, клавиш и общие настройки можно изменить через Configure IDLE в меню Option. Клавиши можно определять пользовательски; IDLE поставляется с четырьмя встроенными наборами клавиш. Кроме того, пользователь может создать пользовательский набор клавиш в диалоге Configure IDLE на вкладке keys.462463### 25.5.4.3. Расширения464465IDLE содержит механизм расширений. Настройки расширений можно изменить с помощью Configure Extensions. Для получения дополнительной информации см. начало файла config-extensions.def в каталоге idlelib. Текущие расширения по умолчанию:466467- FormatParagraph468- AutoExpand469- ZoomHeight470- ScriptBinding471- CallTips472- ParenMatch473- AutoComplete474- CodeContext475- RstripExtension476