Spec-Zone.ru › Python 3.14

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

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

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

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

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

Приложение IDLE реализовано в пакете idlelib.

Это необязательный модуль. Если он отсутствует в вашей копии CPython, обратитесь к документации поставщика (то есть того, кто предоставил вам Python). Если вы являетесь поставщиком, см. раздел Требования к необязательным модулям.

Меню

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

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

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

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

Новый файл

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

Открыть…

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

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

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

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

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

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

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

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

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

Сохранить

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

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

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

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

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

Печать окна

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

Закрыть окно

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

Выйти из IDLE

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

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

Отменить

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

Повторить

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

Выделить всё

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

Вырезать

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

Копировать

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

Вставить

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

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

Найти…

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

Найти снова

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

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

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

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

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

Заменить…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Преобразовать все табуляции в соответствующее количество пробелов.

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

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

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

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

Удалить завершающие пробелы

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

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

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

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

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

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

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

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

Оболочка Python

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настроить IDLE

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

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

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

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

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

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

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

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

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

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

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

О программе IDLE

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

Справка по IDLE

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

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

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

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

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

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

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

Откройте контекстное меню щелчком правой кнопкой мыши в окне (в 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( будет показывать подсказку вызова.

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

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

Команда «Форматировать абзац» переворачивает строки в блоке («абзаце») из расположенных подряд непустых комментариев с одинаковым отступом, в аналогичном блоке текста внутри многострочного литерала или в выделенной части такого блока. При необходимости добавьте пустую строку, чтобы отделить строку от кода. Частичные строки в выделении расширяются до целых строк. В результате строки сохраняют прежний отступ, но их максимальная общая длина составляет N столбцов (символов). Изменить значение N по умолчанию — 72 — можно на вкладке Window в настройках IDLE.

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

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

Цвета текста и фона панели контекста можно настроить на вкладке Highlights диалогового окна настройки 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.

Раскрашивание текста выполняется в фоновом режиме, поэтому иногда можно увидеть текст без подсветки. Чтобы изменить цветовую схему, воспользуйтесь вкладкой Highlighting диалогового окна настройки 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 и процессом выполнения пользовательского кода. Подключение должно устанавливаться каждый раз при запуске или перезапуске оболочки. (На перезапуск указывает разделительная линия с надписью «RESTART».) Если пользовательскому процессу не удаётся подключиться к процессу графического интерфейса, обычно отображается окно ошибки Tk с сообщением «cannot connect» («не удаётся подключиться»), которое направляет пользователя сюда. После этого процесс завершает работу.

Одна из конкретных причин сбоя подключения в системах 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) перезапуск не удаётся выполнить. Закрытие окна ошибки или выбор пункта Restart Shell в меню Shell может устранить временную проблему.

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

Если 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 (основной многоязычной плоскости) Unicode. От операционной системы и установленных шрифтов зависит, какие символы будут отображаться корректным глифом, а какие — замещающим прямоугольником. Символы табуляции сдвигают следующий текст к следующей позиции табуляции. (Такие позиции встречаются через каждые 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. При необходимости файл будет открыт.

В оболочке есть специальная функция сворачивания строк вывода в метку «Squeezed text». Это делается автоматически, если вывод содержит больше 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.

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

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

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

Пункт меню Help “Python Docs” открывает обширные источники справки, включая учебные руководства, доступные по адресу 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

В разделе System Preferences: Dock можно установить для параметра “Prefer tabs when opening documents” значение “Always”. Эта настройка несовместима с графическим интерфейсом 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 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/idle.html

Spec-Zone.ru

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