Spec-Zone.ru › Python 3.8

IDLE

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

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

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

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

Меню

IDLE имеет два основных типа окон: окно оболочки (Shell) и окно редактора (Editor). Можно одновременно иметь несколько окон редактора. В Windows и Linux каждое окно имеет собственное верхнее меню. Каждое меню, описанное ниже, указывает, с каким типом окна оно связано.

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

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

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

Новый файл

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

Открыть…

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

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

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

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

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

Обозреватель классов

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

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

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

Сохранить

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

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

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

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

Сохранить текущее окно в другой файл без изменения связанного файла.

Печать окна

Распечатать текущее окно на стандартном принтере.

Закрыть

Закрыть текущее окно (спросить о сохранении, если оно не сохранено).

Выход

Закрыть все окна и выйти из IDLE (спросить о сохранении несохраненных окон).

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

Отменить

Отменить последнее изменение в текущем окне. Максимальное количество отмененных изменений — 1000.

Повторить

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

Вырезать

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

Копировать

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

Вставить

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

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

Выделить всё

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

Найти…

Открыть диалог поиска со многими опциями

Найти снова

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

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

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

Найти во всех файлах…

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

Заменить…

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

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

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

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

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

Расширить слово

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

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

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

Показать окружающие скобки

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

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

Отступ области

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

Убрать отступ области

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

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

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

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

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

Табуляция области

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

Удаление табуляции области

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

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

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

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

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

Форматирование абзаца

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

Удалить хвостовые пробелы

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

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

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

Выполнить Проверка модуля. Если ошибок нет, перезапустить оболочку для очистки среды, затем выполнить модуль. Вывод отображается в окне оболочки. Обратите внимание, что вывод требует использования 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.

Демонстрация черепахи

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

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

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

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

Вырезать

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

Копировать

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

Вставить

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

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

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

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

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

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

Окна консоли и вывода также имеют следующее.

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

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

Окно консоли также имеет функцию сжатия вывода, описанную в подразделе «Окно Python Shell» ниже.

Сжать

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

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

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

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

Строка заголовка содержит имя файла, полный путь, а также версию Python и IDLE, использующих окно. Строка состояния содержит номер строки (‘Строка’) и номер столбца (‘Столбец’). Номера строк начинаются с 1; номера столбцов с 0.

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

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

В этом разделе ‘C’ относится к клавише Ctrl в Windows и Unix и к клавише Command в macOS.

  • Backspace удаляет влево; Del удаляет вправо
  • C-Backspace удаляет слово влево; C-Del удаляет слово вправо
  • Клавиши со стрелками и Page Up/Page Down для перемещения
  • C-LeftArrow и C-RightArrow перемещаются по словам
  • Home/End переходят к началу/концу строки
  • C-Home/C-End переходят к началу/концу файла
  • Некоторые полезные сочетания клавиш Emacs унаследованы от Tcl/Tk:

    • C-a начало строки
    • C-e конец строки
    • C-k удаление строки (но не в буфер обмена)
    • C-l центрировать окно вокруг точки вставки
    • C-b перейти назад на один символ без удаления (обычно для этого можно использовать клавишу со стрелкой)
    • C-f перейти вперед на один символ без удаления (обычно для этого можно использовать клавишу со стрелкой)
    • C-p перейти вверх на одну строку (обычно для этого можно использовать клавишу со стрелкой)
    • C-d удалить следующий символ

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

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

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

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

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

Автодополнение предлагается, когда запрошено и доступно, для имён модулей, атрибутов классов или функций или имён файлов. Каждый запрос отображает поле автодополнения с существующими именами. (См. автодополнение с помощью табуляции ниже для исключения.) Для любого поля измените имя, которое заполняется, и выделенный элемент в поле, набирая и удаляя символы; нажимая клавиши Вверх, Вниз, Страница вверх, Страница вниз, Home и End; и одним щелчком мыши внутри поля. Закройте поле с помощью клавиш Esc, Enter и двойного нажатия Tab или щелчком мыши вне поля. Двойной щелчок внутри поля выбирает и закрывает.

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

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

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

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

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

Поля автодополнения изначально исключают имена, начинающиеся с ‘_’, или, для модулей, не включенные в ‘__all__’. К скрытым именам можно получить доступ, введя ‘_’ после ‘.’, либо до, либо после открытия поля.

Подсказки

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

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

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

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

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

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

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

Цвета текста и фона области контекста можно настроить на вкладке «Выделение» в диалоговом окне настроек IDLE.

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

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

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

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

  • C-c прерывает выполнение команды
  • C-d отправляет конец файла; закрывает окно, если введено в приглашении >>>
  • Alt-/ (Развернуть слово) также полезно для сокращения набора текста

    История команд

    • Alt-p извлекает предыдущую команду, соответствующую введённому тексту. В macOS используйте C-p.
    • Alt-n извлекает следующую. В macOS используйте C-n.
    • Возврат при наличии любой предыдущей команды извлекает эту команду

Цвета текста

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

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

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

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

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

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

idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...

-c command  run command in the shell window
-d          enable debugger and open shell window
-e          open editor window
-h          print help message with legal combinations and exit
-i          open shell window
-r file     run file in shell window
-s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title    set title of shell window
-           run stdin in shell (- must be last option before args)

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

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

Ошибка запуска

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

Хотя это менее распространено, чем раньше, антивирусная программа или брандмауэр могут прервать подключение. Если программе нельзя объяснить, как разрешить подключение, её нужно отключить, чтобы 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 должен запускаться в окне командной строки. В этом случае дочерний процесс будет подключен к этому окну для ввода и вывода.

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

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

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

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

Вывод пользователя в оболочке

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

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

Виджет Tk Text, а следовательно и оболочка IDLE, отображает символы (кодовые точки) в подмножестве Unicode BMP (Basic Multilingual Plane). Какие символы отображаются с правильным глифом, а какие — с замещающим символом, зависит от операционной системы и установленных шрифтов. Символы табуляции делают следующий текст началом после следующей позиции табуляции. (Они появляются через каждые 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 на странице «Общие» диалогового окна настроек. Вывод с меньшим количеством строк можно сжать, щелкнув правой кнопкой мыши по выводу. Это может быть полезно для вывода строк, которые достаточно длинные, чтобы замедлить прокрутку.

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

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

IDLE преднамеренно отличается от стандартного Python, чтобы облегчить разработку программ tkinter. В стандартном Python ввод import tkinter as tk; root = tk.Tk() ничего не отображает. В 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. Кроме того, окружение не перезапускается, когда выбирается «Запустить/Запустить модуль» (F5). Если ваш код был изменён, необходимо перезагрузить () затронутые модули и повторно импортировать все специфичные элементы (например, from foo import baz), чтобы изменения вступили в силу. По этим причинам предпочтительнее запускать IDLE с подпроцессом по умолчанию, если это возможно.

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

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

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

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

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

Выбранные URL-адреса можно добавлять или удалять из меню справки в любое время, используя вкладку «Общие» диалогового окна «Настройка IDLE».

Настройка предпочтений

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

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

На вкладке «Подсветка и клавиши» выберите встроенную или пользовательскую цветовую тему и набор клавиш. Чтобы использовать более новую встроенную цветовую тему или набор клавиш со старыми версиями IDLE, сохраните её как новую пользовательскую тему или набор клавиш, и она будет доступна в старых версиях IDLE.

IDLE в macOS

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

Расширения

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

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

Spec-Zone.ru

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