Spec-Zone.ru › Python 3.12

IDLE

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

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

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

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

Меню

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

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

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

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

Новый файл

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

Открыть…

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

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

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

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

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

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

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

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

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

Сохранить

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

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

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

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

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

Печать окна

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

Закрыть окно

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

Выход из IDLE

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

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

Отменить

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

Повторить

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

Выделить всё

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

Вырезать

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

Копировать

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

Вставить

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

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

Найти…

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

Найти снова

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

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

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

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

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

Заменить…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Табулировать область

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

Удалить табуляции

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

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

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

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

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

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

Удалить хвостовые пробелы и другие пробельные символы после последнего не-пробельного символа в строке, применяя 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, используемые в окне. Строка состояния содержит номер строки (‘Ln’) и номер столбца (‘Col’). Номера строк начинаются с 1; номера столбцов — с 0.

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

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

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

Несколько клавиш, не являющихся символами, перемещают курсор и, возможно, удаляют символы. Удаление не помещает текст в буфер обмена, но IDLE имеет список отмены. Всюду в этом документе «C» относится к клавише Control в Windows и Unix и клавише Command в macOS. (Все такие обсуждения предполагают, что клавиши не были переназначены на что-то другое.)

  • Клавиши со стрелками перемещают курсор на один символ или строку.
  • C-LeftArrow и C-RightArrow перемещают влево или вправо на одно слово.
  • Home и End перемещаются к началу или концу строки.
  • Page Up и Page Down перемещаются вверх или вниз на одну страницу.
  • C-Home и C-End перемещаются к началу или концу файла.
  • Backspace и Del (или C-d) удаляют предыдущий или следующий символ.
  • C-Backspace и C-Del удаляют одно слово влево или вправо.
  • C-k удаляет всё справа.

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

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

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

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

Поиск и замена

Любой выделенный фрагмент становится целевым фрагментом для поиска. Однако работают только выделения в строке, потому что поиск выполняется только внутри строк с удалённым терминальным символом новой строки. Если [x] Regular expression отмечено, цель интерпретируется в соответствии с модулем Python re.

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

Автодополнение предоставляется при запросе и наличии для имён модулей, атрибутов классов или функций, или имён файлов. Каждый запрос отображает поле автодополнения с существующими именами. (См. автодополнение табуляцией ниже для исключения.) Для любого поля можно изменять имя, которое дозаполняется, и выделенный элемент в поле, набирая и удаляя символы; нажимая клавиши Up, Down, PageUp, PageDown, Home и End; и с помощью одного щелчка внутри поля. Закрыть поле можно с помощью клавиш Escape, 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( отобразит подсказку к вызову.

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

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

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

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

Окно командной строки

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

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

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

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

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

  • Ctrl-c пытается прервать выполнение оператора (но может и не прервать).
  • Ctrl-d закрывает командную строку, если набрано в >>> подсказке.
  • Alt-стрелка_вверх и Alt-стрелка_вниз (Ctrl-стрелка_вверх и Ctrl-стрелка_вниз на macOS) возвращают в текущую подсказку предыдущий или следующий ранее введенный оператор, соответствующий уже введенному тексту.
  • Ввод при курсоре на предыдущем операторе добавляет последний к уже набранному в подсказке тексту.

Цвета текста

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

IDLE также выделяет мягкие ключевые слова match, case и _ в операторах сопоставления шаблонов. Однако эта подсветка не идеальна и будет неправильной в некоторых редких случаях, включая некоторые _ в шаблонах case.

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

Отправка выходных данных печати из одного процесса в текстовый виджет другого процесса медленнее, чем печать в системный терминал в том же процессе. Это наиболее заметно при печати нескольких аргументов, поскольку строка для каждого аргумента, каждый разделитель, новая строка отправляются отдельно. Для разработки это обычно не проблема, но если вам нужно печатать быстрее в IDLE, отформатируйте и объедините всё, что нужно отобразить вместе, а затем выведите одну строку. Обе функции, форматирования строк и str.join(), помогут объединить поля и строки.

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

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

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

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

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

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

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

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

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

>>> s = 'a\tb\a<\x02><\r>\bc\nd'  # Enter 22 chars.
>>> len(s)
14
>>> s  # Display repr(s)
'a\tb\x07<\x02><\r>\x08c\nd'
>>> print(s, end='')  # Display s as is.
# Result varies by OS and font.  Try it.

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

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

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

Оболочка имеет специальную возможность для сжатия строк вывода до метки «Сжатый текст». Это делается автоматически для вывода более 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, также используемое для тестирования.

idlelib

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

Пакет Lib/idlelib реализует приложение IDLE. Смотрите остальную часть этой страницы, чтобы узнать, как использовать IDLE.

Файлы в idlelib описаны в idlelib/README.txt. Доступ к нему можно получить в idlelib или нажав «Справка» => «О IDLE» в меню IDLE. Этот файл также сопоставляет пункты меню IDLE с кодом, реализующим этот пункт. За исключением файлов, указанных в разделе «Запуск», код idlelib является «частным» в том смысле, что изменения функций могут быть перенесены назад (см. PEP 434).

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

Spec-Zone.ru

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