Spec-Zone.ru › Python 3.9

IDLE

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

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

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

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

Меню

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

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

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

Меню Файл (Консоль и Редактор)

Новый файл

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

Открыть…

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

Последние файлы

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

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

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

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

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

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

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

Сохранить

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

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

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

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

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

Печать окна

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

Закрыть окно

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

Выйти из IDLE

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

Меню Правка (Консоль и Редактор)

Отменить

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

Повторить

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

Вырезать

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

Копировать

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

Вставить

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

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

Выделить все

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

Найти…

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

Найти снова

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

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

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

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

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

Заменить…

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

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

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

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

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

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

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

Показать подсказки

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

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

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

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

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

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

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

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

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

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

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

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

Преобразовать в табуляцию область

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

Преобразовать табуляцию в пробелы

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

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

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

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

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

Отформатировать абзац

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

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

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

Меню Выполнить (только окно Редактора)

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

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

Сжать

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

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

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

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

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

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

Настройки клавиш

В этом разделе «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».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Цвет текста и фона панели контекста можно настроить на вкладке «Стили» в диалоговом окне «Настройка IDLE».

Окно Python Shell

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

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

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

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

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

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

Цвета текста

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

Процесс-зомби pythonw.exe может быть проблемой. В Windows используйте Диспетчер задач, чтобы проверить его и остановить, если он есть. Иногда перезапуск, вызванный сбоем программы или прерыванием с клавиатуры (Ctrl-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 заменены на коды экранирования. Как показано выше, это позволяет идентифицировать символы в строке независимо от способа их отображения.

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

Для отслеживания 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. Тогда вы сразу получите приглашение командной строки и сможете взаимодействовать с активным приложением. Просто нужно помнить, что при запуске в стандартном Python необходимо снова включить вызов mainloop.

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

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

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

Если IDLE запускается с командной строкой -n, он будет работать в одном процессе и не будет создавать подпроцесс, который запускает сервер выполнения RPC Python. Это может быть полезно, если Python не может создать подпроцесс или интерфейс сокета RPC на вашей платформе. Однако в этом режиме пользовательский код не изолирован от самого IDLE. Кроме того, среда не перезапускается при выборе «Запуск/Запуск модуля» (F5). Если ваш код был изменён, необходимо перезагрузить() соответствующие модули и повторно импортировать любые конкретные элементы (например, из foo импортировать 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.9/library/idle.html

Spec-Zone.ru

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