Spec-Zone.ru › Python 3.6

IDLE

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

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

IDLE обладает следующими функциями:

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

25.5.1. Меню

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

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

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

25.5.1.1. Меню «Файл» (консоль и редактор)

Новый файл

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

Открыть…

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

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

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

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

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

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

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

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

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

Сохранить

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

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

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

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

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

Печать окна

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

Закрыть

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

Выход

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

25.5.1.2. Меню «Правка» (консоль и редактор)

Отменить

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

Повторить

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

Вырезать

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

Копировать

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

Вставить

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

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

Выделить всё

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

Найти…

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

Найти снова

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

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

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

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

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

Заменить…

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

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

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

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

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

Развернуть слово

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

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

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

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

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

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

Отступы региона

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

Уменьшить отступы региона

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

Комментировать регион

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

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

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

Табулировать регион

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

Убрать табуляцию из региона

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

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

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

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

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

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

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

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

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

25.5.1.4. Меню «Выполнить» (только окно редактора)

Консоль Python

Открыть или активировать окно консоли Python.

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

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

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

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

25.5.1.5. Меню «Консоль» (только окно консоли)

Просмотр последнего перезапуска

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

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

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

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

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

25.5.1.6. Меню «Отладка» (только окно консоли)

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

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

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

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

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

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

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

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

25.5.1.7. Меню «Настройки» (консоль и редактор)

Настроить IDLE

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

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

Контекст кода (переключение)(только окно редактора)

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

25.5.1.8. Меню «Окно» (консоль и редактор)

Изменить высоту

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

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

25.5.1.9. Меню «Справка» (консоль и редактор)

О IDLE

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

Справка IDLE

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

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

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

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

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

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

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

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

Вырезать

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

Копировать

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

Вставить

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

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

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

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

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

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

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

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

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

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

Сжать

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

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

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

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

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

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

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

В этом разделе «C» относится к клавише Control в 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.

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

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

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

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

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

Окно автодополнения (ACW) откроется после заданной задержки (по умолчанию две секунды) после символа «.» или (в строке) os.sep. Если после одного из этих символов (плюс ноль или более других символов) нажата клавиша Tab, ACW откроется немедленно, если найдено возможное продолжение.

Если существует только одно возможное автодополнение для введенных символов, клавиша Tab предоставит это автодополнение без открытия ACW.

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

Если вводится строка символов, выбор ACW перейдёт к записи, наиболее точно соответствующей этим символам. Ввод tab вызовет ввод в окно редактора или оболочки самого длинного недвусмысленного совпадения. Два tab подряд предоставят текущий выбор ACW, как и возврат или двойной щелчок. Клавиши курсора, Page Up/Down, выбор мышью и колесо прокрутки работают с ACW.

К «скрытым» атрибутам можно получить доступ, введя начало скрытого имени после «.», например «_». Это позволяет получить доступ к модулям с __all__ или к атрибутам класса-приватным.

Автодополнение и функция «Расширить слово» позволяют сэкономить много времени набора!

В настоящее время автодополнение ограничено пространствами имён. Имена в окне редактора, которые не получены через __main__ и sys.modules, не будут найдены. Запустите модуль один раз с импортами, чтобы исправить эту ситуацию. Обратите внимание, что IDLE сам помещает множество модулей в sys.modules, поэтому многие из них можно найти по умолчанию, например, модуль re.

Если вам не нравится, что ACW появляется не по вашей воле, просто увеличьте задержку или отключите расширение.

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

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

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

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

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

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

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

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

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

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

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

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

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

25.5.2.7. Цвета текста

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

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

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

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

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

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

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.

25.5.3.2. Ошибка при запуске

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

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

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

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

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

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

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

25.5.3.3. Выполнение кода пользователя

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

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

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

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

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

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

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

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

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

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

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

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

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

25.5.3.5. Разработка приложений 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.

25.5.3.6. Запуск без подпроцесса

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

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

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

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

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

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

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

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

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

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

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

25.5.4.3. IDLE в macOS

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

25.5.4.4. Расширения

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

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

Spec-Zone.ru

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