idle.md
1> **Источник:** https://python-all.ru/3.4/library/idle.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 25.5. IDLE89IDLE – это интегрированная среда разработки и обучения Python.1011IDLE имеет следующие возможности:1213- написан на 100% чистом Python с использованием графического инструментария [`tkinter`](https://python-all.ru/3.4/library/tkinter.html#module-tkinter)14- кроссплатформенность: работает почти одинаково на Windows, Unix и Mac OS X15- окно оболочки Python (интерактивный интерпретатор) с цветовой подсветкой вводимого кода, вывода и сообщений об ошибках16- многооконный текстовый редактор с множественной отменой, подсветкой синтаксиса Python, умными отступами, подсказками вызова, автозавершением и другими функциями17- поиск в любом окне, замена в окнах редактора и поиск по нескольким файлам (grep)18- отладчик с постоянными точками останова, пошаговым выполнением и просмотром глобального и локального пространства имён19- настройки, обозреватели и другие диалоговые окна2021## 25.5.1. Меню2223IDLE имеет два основных типа окон: окно Shell и окно Редактора. Можно открыть несколько окон редактора одновременно. Окна вывода, например, используемые для Edit / Find in Files, являются подтипом окон редактора. В настоящее время они имеют то же верхнее меню, что и окна редактора, но другой заголовок по умолчанию и контекстное меню.2425Меню IDLE динамически меняются в зависимости от того, какое окно выбрано. Каждое описанное ниже меню указывает, с каким типом окна оно связано.2627### 25.5.1.1. Меню File (Shell и Редактор)2829**Новый файл**3031Создаёт новое окно для редактирования файла.3233**Открыть...**3435Открывает существующий файл с помощью диалога «Открыть».3637**Последние файлы**3839Открывает список последних файлов. Щелчок по файлу открывает его.4041**Открыть модуль...**4243Открывает существующий модуль (поиск по sys.path).4445**Обозреватель классов**4647Показывает функции, классы и методы в текущем файле редактора в виде древовидной структуры. В оболочке сначала нужно открыть модуль.4849**Обозреватель путей**5051Показывает каталоги из sys.path, модули, функции, классы и методы в виде dревовидной структуры.5253**Сохранить**5455Сохраняет текущее окно в соответствующий файл, если таковой имеется. В окнах, которые были изменены после открытия или последнего сохранения, в начале и в конце заголовка окна отображается символ \*. Если соответствующий файл отсутствует, выполняется команда «Сохранить как».5657**Сохранить как...**5859Сохранить текущее окно через диалог «Сохранить как». Сохранённый файл становится новым связанным файлом для окна.6061**Сохранить копию как...**6263Сохранить текущее окно в другой файл, не меняя связанный файл.6465**Печать окна**6667Выводит текущее окно на принтер по умолчанию.6869**Закрыть**7071Закрывает текущее окно (предлагает сохранить, если есть несохранённые изменения).7273**Выход**7475Закрывает все окна и завершает работу IDLE (предлагает сохранить несохранённые окна).7677### 25.5.1.2. Меню Edit (Shell и Редактор)7879**Отменить**8081Отменяет последнее изменение в текущем окне. Можно отменить до 1000 изменений.8283**Повторить**8485Повторяет последнюю отменённую операцию в текущем окне.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### 25.5.1.3. Меню Format (только окно Редактора)146147**Увеличить отступ выделенного фрагмента**148149Сдвигает выделенные строки вправо на ширину отступа (по умолчанию 4 пробела).150151**Уменьшить отступ выделенного фрагмента**152153Сдвигает выделенные строки влево на ширину отступа (по умолчанию 4 пробела).154155**Закомментировать выделенный фрагмент**156157Вставляет ## перед выделенными строками.158159**Раскомментировать выделенный фрагмент**160161Удаляет начальные символы # или ## из выделенных строк.162163**Преобразовать в табуляцию**164165Превращает166167*начальные*168169последовательности пробелов в табуляцию. (Рекомендуется использовать блоки из 4 пробелов для отступов в коде Python.)170171**Преобразовать табуляцию в пробелы**172173Превращает174175*все*176177табуляции в правильное количество пробелов.178179**Переключить режим табуляции**180181Открывает диалог для переключения между отступами пробелами и табуляцией.182183**Новая ширина отступа**184185Открывает диалог для изменения ширины отступа. Принятое по умолчанию значение в сообществе Python – 4 пробела.186187**Форматировать абзац**188189Переформатирует текущий абзац, разделённый пустыми строками, в блоке комментариев или многострочной строке, или выбранную строку внутри строки. Все строки абзаца будут отформатированы так, чтобы длина не превышала N столбцов, где по умолчанию N = 72.190191**Удалить завершающие пробелы**192193Удаляет все пробельные символы после последнего непробельного символа в строке.194195### 25.5.1.4. Меню Run (только окно Редактора)196197**Оболочка Python**198199Открыть или активировать окно оболочки Python.200201**Проверить модуль**202203Проверяет синтаксис модуля, открытого в окне редактора. Если модуль не был сохранён, IDLE предложит сохранить его или выполнит автосохранение в зависимости от настройки на вкладке General диалога Idle Settings. Если есть синтаксическая ошибка, её примерное местоположение указывается в окне редактора.204205**Запустить модуль**206207Выполните проверку модуля (выше). Если ошибок нет, перезапустите оболочку (shell), чтобы очистить окружение, затем выполните модуль. Вывод отображается в окне Shell. Обратите внимание, что для вывода требуется использовать208209`print`210211или212213`write`214215. Когда выполнение завершено, оболочка сохраняет фокус и отображает приглашение. На этом этапе можно интерактивно исследовать результат выполнения. Это похоже на выполнение файла с помощью216217`python -i file`218219в командной строке.220221### 25.5.1.5. Меню Shell (только окно Shell)222223**Просмотр последнего перезапуска**224225Прокручивает окно оболочки к последнему перезапуску оболочки.226227**Перезапустить оболочку**228229Перезапустите оболочку, чтобы очистить окружение.230231### 25.5.1.6. Меню Debug (только окно Shell)232233**Перейти к файлу/строке**234235Проверяет текущую строку (на которой находится курсор) и строку над ней на наличие имени файла и номера строки. Если найдено, открывает файл (если ещё не открыт) и показывает эту строку. Используется для просмотра строк исходного кода, указанных в трассировке исключения, и строк, найденных с помощью «Найти в файлах». Также доступно в контекстном меню окна оболочки и окон вывода.236237**Отладчик (вкл/выкл)**238239Когда эта функция включена, код, введённый в Shell или запущенный из редактора, выполняется под отладчиком. В редакторе точки останова можно установить через контекстное меню. Эта возможность всё ещё не завершена и носит экспериментальный характер.240241**Просмотр стека**242243Показывает трассировку стека последнего исключения в виджете-дереве с доступом к локальным и глобальным переменным.244245**Автоматически открывать просмотр стека**246247Включает/выключает автоматическое открытие просмотра стека при необработанном исключении.248249### 25.5.1.7. Меню Options (Shell и Редактор)250251**Настроить IDLE**252253Открывает диалог настройки и позволяет изменить параметры: шрифты, отступы, сочетания клавиш, цветовые темы текста, окна и размер при запуске, дополнительные источники справки и расширения (см. ниже). В OS X откройте диалог настройки, выбрав «Preferences» в меню приложения. Чтобы использовать новую встроенную цветовую тему (IDLE Dark) в старых версиях IDLE, сохраните её как новую пользовательскую тему.254255Нестандартные пользовательские настройки сохраняются в каталоге .idlerc в домашнем каталоге пользователя. Проблемы, вызванные некорректными файлами конфигурации, решаются редактированием или удалением одного или нескольких файлов в .idlerc.256257**Контекст кода (переключатель) (только окно редактора)**258259Открывает панель в верхней части окна редактора, которая показывает контекст блока кода, ушедшего за верхнюю границу окна.260261### 25.5.1.8. Меню Window (Shell и Редактор)262263**Развернуть по высоте**264265Переключает окно между нормальным размером и максимальной высотой. Начальный размер по умолчанию – 40 строк на 80 символов, если не изменён на вкладке «Общие» в диалоге настройки IDLE.266267Остальная часть этого меню содержит список всех открытых окон; выберите одно, чтобы вывести его на передний план (при необходимости развернув из свёрнутого состояния).268269### 25.5.1.9. Меню Help (Shell и Редактор)270271**О программе IDLE**272273Отображает версию, авторские права, лицензию, список разработчиков и дополнительную информацию.274275**Справка по IDLE**276277Отображает файл справки по IDLE с подробным описанием пунктов меню, основ редактирования и навигации, а также других советов.278279**Документация Python**280281Открывает локальную документацию Python, если она установлена, или запускает веб-браузер и открывает docs.python.org с последней версией документации Python.282283**Демонстрация Turtle**284285Запускает модуль turtledemo с примерами кода Python и рисунками черепашки.286287Дополнительные источники справки можно добавить в диалоге Configure IDLE на вкладке General.288289### 25.5.1.10. Контекстные меню290291Откройте контекстное меню, щелкнув правой кнопкой мыши в окне (Control-щелчок на OS X). Контекстные меню содержат стандартные функции буфера обмена, которые также есть в меню Edit.292293**Вырезать**294295Копирует выделение в системный буфер обмена, затем удаляет выделение.296297**Копировать**298299Копирует выделение в системный буфер обмена.300301**Вставить**302303Вставляет содержимое системного буфера обмена в текущее окно.304305Окна редактора также имеют функции точек останова. Строки с установленной точкой останова специально помечаются. Точки останова действуют только при запуске под отладчиком. Точки останова для файла сохраняются в каталоге .idlerc пользователя.306307**Установить точку останова**308309Устанавливает точку останова на текущей строке.310311**Снять точку останова**312313Снимает точку останова на этой строке.314315Окна Shell и Output имеют следующее.316317**Перейти к файлу/строке**318319То же, что в меню Debug.320321## 25.5.2. Редактирование и навигация322323В этом разделе под «C» подразумевается клавиша `Control` в Windows и Unix и клавиша `Command` в Mac OSX.324325- `Backspace` удаляет символ слева; `Del` удаляет символ справа326- `C-Backspace` удаляет слово слева; `C-Del` удаляет слово справа327- Клавиши со стрелками и `Page Up`/`Page Down` для перемещения328- `C-LeftArrow` и `C-RightArrow` перемещают по словам329- `Home`/`End` переход к началу/концу строки330- `C-Home`/`C-End` go to begin/end of file331- Некоторые полезные привязки Emacs унаследованы от Tcl/Tk:332333 > - `C-a` начало строки334 > - `C-e` конец строки335 > - `C-k` вырезать строку (но не помещает её в буфер обмена)336 > - `C-l` центрировать окно относительно точки вставки337 > - `C-b` перейти на один символ назад без удаления (обычно для этого также можно использовать клавишу со стрелкой)338 > - `C-f` перейти на один символ вперёд без удаления (обычно для этого также можно использовать клавишу со стрелкой)339 > - `C-p` перейти на строку вверх (обычно для этого также можно использовать клавишу со стрелкой)340 > - `C-d` удалить следующий символ341342Стандартные сочетания клавиш (например, `C-c` для копирования и `C-v` для вставки) могут работать. Сочетания клавиш выбираются в диалоге Configure IDLE.343344### 25.5.2.1. Автоматические отступы345346После оператора, открывающего блок, следующая строка получает отступ в 4 пробела (в окне Python Shell – одна табуляция). После некоторых ключевых слов (break, return и т.д.) следующая строка имеет уменьшенный отступ. В начальном отступе `Backspace` удаляет до 4 пробелов, если они есть. `Tab` вставляет пробелы (в окне Python Shell – одну табуляцию); количество зависит от ширины отступа. В настоящее время табуляция ограничена четырьмя пробелами из-за ограничений Tcl/Tk.347348См. также команды indent/dedent region в меню Edit.349350### 25.5.2.2. Автодополнение351352Автодополнение предоставляется для функций, классов и атрибутов классов – как встроенных, так и определённых пользователем. Автодополнение также предоставляется для имён файлов.353354Окно автодополнения (ACW) открывается после заданной задержки (по умолчанию две секунды) после ввода точки ‘.’ или (в строке) os.sep. Если после одного из этих символов (плюс ноль или более других символов) нажать Tab, ACW откроется немедленно при наличии возможного продолжения.355356Если для введённых символов существует только одно возможное дополнение, `Tab` предоставит его без открытия окна автодополнения (ACW).357358«Show Completions» принудительно открывает окно дополнений; по умолчанию `C-space` открывает окно дополнений. В пустой строке оно будет содержать файлы из текущего каталога. На пустой строке (blank line) оно будет содержать встроенные и определённые пользователем функции и классы из текущих пространств имён, а также импортированные модули. Если введено несколько символов, ACW попытается предложить более конкретные варианты.359360Если ввести строку символов, выбор в окне автодополнения (ACW) перейдёт к записи, наиболее соответствующей этим символам. Ввод `табуляции` приведёт к тому, что самая длинная недвусмысленная запись будет вставлена в окно редактора или Shell. Две `табуляции` подряд применят текущий выбор ACW, как и клавиша Return или двойной щелчок. Клавиши курсора, Page Up/Down, выбор мышью, и колёсико прокрутки – всё это работает с окном ACW.361362“Скрытые” атрибуты можно получить, введя начало скрытого имени после точки ‘.’, например ‘\_’. Это позволяет обращаться к модулям с установленным `__all__` или к закрытым атрибутам класса.363364Автодополнение и функция «Expand Word» могут сэкономить много ввода!365366В настоящее время автодополнение ограничено теми именами, которые есть в пространствах имён. Имена в окне редактора, которые не доступны через `__main__` и [`sys.modules`](https://python-all.ru/3.4/library/sys.html#sys.modules), не будут найдены. Запустите модуль один раз с вашими импортами, чтобы исправить это. Обратите внимание, что сама IDLE помещает немало модулей в sys.modules, так что многое можно найти по умолчанию, например модуль re.367368Если вам не нравится, что ACW появляется без запроса, просто увеличьте задержку или отключите расширение.369370### 25.5.2.3. Подсказки вызова371372Подсказка вызова отображается, когда после имени *доступной* функции вводится `(`. Выражение имени может содержать точки и индексы. Подсказка вызова остается до тех пор, пока по ней не щелкнуть, курсор не будет перемещен за пределы области аргументов или не будет введено `)`. Когда курсор находится в части аргументов определения, меню или сочетание клавиш отображают подсказку вызова.373374Подсказка вызова состоит из сигнатуры функции и первой строки строки документации. Для встроенных функций без доступной сигнатуры подсказка состоит из всех строк до пятой строки или первой пустой строки. Эти детали могут измениться.375376Набор *доступных* функций зависит от того, какие модули были импортированы в пользовательский процесс, включая импортированные самой IDLE, и какие определения были выполнены после последнего перезапуска.377378Например, перезапустите Shell и введите `itertools.count(`. Появится подсказка, потому что Idle импортирует itertools в пользовательский процесс для своих нужд. (Это может измениться.) Введите `turtle.write(` – ничего не появится. Idle не импортирует turtle. Меню или сочетание клавиш тоже ничего не делают. Введите `import turtle`, и затем `turtle.write(` заработает.379380В редакторе операторы импорта не действуют до запуска файла. Возможно, стоит запустить файл после написания операторов импорта в начале или сразу запустить существующий файл перед редактированием.381382### 25.5.2.4. Окно Python Shell383384- `C-c` прерывает выполняющуюся команду385- `C-d` отправляет конец файла; закрывает окно, если введено в приглашении `>>>`386- `Alt-/` (Развернуть слово) также полезно для уменьшения ввода387388 История команд389390 - `Alt-p` извлекает предыдущую команду, соответствующую введённому. В OS X используйте `C-p`.391 - `Alt-n` извлекает следующую. В OS X используйте `C-n`.392 - `Return`, находясь на любой предыдущей команде, извлекает эту команду393394### 25.5.2.5. Цвета текста395396В Idle по умолчанию чёрный текст на белом фоне, но текст окрашивается в соответствии со смыслом. Для оболочки это: вывод оболочки, ошибки оболочки, вывод пользователя и ошибки пользователя. Для кода Python в приглашении оболочки или в редакторе это: ключевые слова, встроенные имена классов и функций, имена после `class` и `def`, строки и комментарии. Для любого текстового окна это: курсор (когда он присутствует), найденный текст (когда возможно) и выделенный текст.397398Окрашивание текста выполняется в фоновом режиме, поэтому иногда может быть виден неокрашенный текст. Чтобы изменить цветовую схему, используйте вкладку «Подсветка» в диалоге настройки IDLE. Разметка строк точек останова отладчика в редакторе и текст во всплывающих окнах и диалогах не настраивается пользователем.399400## 25.5.3. Запуск и выполнение кода401402При запуске с опцией `-s` IDLE выполнит файл, на который ссылаются переменные окружения `IDLESTARTUP` или [`PYTHONSTARTUP`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONSTARTUP). IDLE сначала проверяет `IDLESTARTUP`; если `IDLESTARTUP` присутствует, запускается файл, на который она ссылается. Если `IDLESTARTUP` отсутствует, IDLE проверяет `PYTHONSTARTUP`. Файлы, на которые ссылаются эти переменные окружения, – это удобные места для хранения функций, часто используемых из оболочки IDLE, или для выполнения операторов импорта для импорта общих модулей.403404Кроме того, `Tk` также загружает файл запуска, если он присутствует. Обратите внимание, что файл Tk загружается безусловно. Этот дополнительный файл – `.Idle.py`, он ищется в домашнем каталоге пользователя. Операторы в этом файле будут выполняться в пространстве имён Tk, поэтому этот файл не подходит для импорта функций, используемых из оболочки Python IDLE.405406### 25.5.3.1. Использование командной строки407408```python409idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...410411-c command run command in the shell window412-d enable debugger and open shell window413-e open editor window414-h print help message with legal combinatios and exit415-i open shell window416-r file run file in shell window417-s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window418-t title set title of shell window419- run stdin in shell (- must be last option before args)420```421422Если есть аргументы:423424- Если используется `-`, `-c` или `r`, все аргументы помещаются в `sys.argv[1:...]`, а `sys.argv[0]` устанавливается в `''`, `'-c'` или `'-r'`. Окно редактора не открывается, даже если это значение по умолчанию, установленное в диалоге Options.425- В противном случае аргументы – это файлы, открытые для редактирования, и `sys.argv` отражает аргументы, переданные самой IDLE.426427### 25.5.3.2. Различия между IDLE и консолью428429Насколько это возможно, результат выполнения кода Python в IDLE такой же, как и при выполнении того же кода в окне консоли. Однако различия в интерфейсе и работе иногда влияют на результаты.430431Например, IDLE обычно выполняет пользовательский код в отдельном процессе от самого графического интерфейса IDLE. Версии sys.stdin, .stdout и .stderr в процессе выполнения получают ввод и отправляют вывод в процесс GUI, который сохраняет контроль над клавиатурой и экраном. Обычно это незаметно, но код, обращающийся к этим объектам, увидит другие значения атрибутов. Кроме того, функции, напрямую обращающиеся к клавиатуре и экрану, не будут работать.432433В оболочке IDLE можно вводить, редактировать и вызывать полные операторы. Некоторые консоли работают только с одной физической строкой за раз.434435### 25.5.3.3. Запуск без подпроцесса436437По умолчанию IDLE выполняет пользовательский код в отдельном подпроцессе через сокет, использующий внутренний интерфейс loopback. Это соединение не видно извне, и никакие данные не отправляются и не принимаются из Интернета. Если брандмауэр всё равно выдаёт предупреждение, его можно игнорировать.438439Если попытка установить сокетное соединение не удалась, Idle уведомит вас. Такие сбои иногда временны, но если они постоянны, проблема может быть либо в блокировке соединения брандмауэром, либо в неправильной конфигурации конкретной системы. Пока проблема не устранена, можно запустить Idle с ключом командной строки -n.440441Если IDLE запущен с ключом командной строки -n, он будет работать в одном процессе и не будет создавать подпроцесс, запускающий RPC-сервер выполнения Python. Это может быть полезно, если Python не может создать подпроцесс или сокетный интерфейс RPC на вашей платформе. Однако в этом режиме пользовательский код не изолирован от самого IDLE. Кроме того, среда не перезапускается при выборе Run/Run Module (F5). Если ваш код был изменён, необходимо выполнить reload() для затронутых модулей и повторно импортировать любые конкретные элементы (например, from foo import baz), чтобы изменения вступили в силу. По этим причинам предпочтительнее запускать IDLE с подпроцессом по умолчанию, если это возможно.442443Устарело с версии 3.4.444445## 25.5.4. Справка и настройки446447### 25.5.4.1. Дополнительные источники справки448449IDLE включает пункт меню справки под названием «Python Docs», который открывает обширные источники справки, включая учебные пособия, доступные на docs.python.org. Выбранные URL-адреса можно в любое время добавлять или удалять из меню справки с помощью диалогового окна Configure IDLE. Для получения дополнительной информации см. пункт справки IDLE в меню справки IDLE.450451### 25.5.4.2. Настройка параметров452453Настройки шрифта, подсветки, клавиш и общие настройки можно изменить через пункт «Настроить IDLE» в меню «Параметры». Клавиши могут быть заданы пользователем; IDLE поставляется с четырьмя встроенными наборами клавиш. Кроме того, пользователь может создать собственный набор клавиш в диалоге «Настройка IDLE» на вкладке «Клавиши».454455### 25.5.4.3. Расширения456457IDLE содержит механизм расширений. Настройки расширений можно изменить с помощью Configure Extensions. Смотрите начало файла config-extensions.def в каталоге idlelib для получения дополнительной информации. Расширения по умолчанию в настоящее время:458459- FormatParagraph460- AutoExpand461- ZoomHeight462- ScriptBinding463- CallTips464- ParenMatch465- AutoComplete466- CodeContext467- RstripExtension468