Spec-Zone.ru › Python 3.11

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 в древовидной структуре.

Сохранить

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

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

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

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

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

Печать окна

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

Закрыть окно

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

Выход из IDLE

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

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

Отменить

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

Повторить

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

Выделить всё

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

Вырезать

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

Копировать

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

Вставить

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

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

Найти…

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

Найти снова

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

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

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

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

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

Заменить…

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

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

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

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

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

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

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

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

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

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

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

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

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

Переформатировать текущий абзац, ограниченный пустыми строками, в блоке комментариев или многострочной строке, или выделенную строку в строке. Все строки в абзаце будут отформатированы, чтобы их длина была меньше N столбцов, где 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 с помощью меню «Выполнить».

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

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

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

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

Любой выделенный фрагмент становится целью поиска. Однако, работают только выделения в строке, потому что поиск выполняется только внутри строк с удаленным терминальным символом новой строки. Если [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( отобразит подсказку вызова.

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

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

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

Цвет текста и фона панели контекста можно настроить на вкладке Выделения в диалоговом окне Настройка IDLE.

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

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

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

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

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

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

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

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

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

Цвета текста

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 не может импортировать файл стандартной библиотеки. Текущее решение — переименовать файл пользователя.

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

Отправка выходных данных печати из одного процесса в текстовое поле другого медленнее, чем вывод в системный терминал в том же процессе. Это наиболее заметно при печати нескольких аргументов, так как каждый аргумент, каждый разделитель, новая строка отправляются отдельно. Для разработки это обычно не проблема, но если вы хотите быстрее печатать в 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 возвращается к приглашению Shell вместо завершения.

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

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

Устарело начиная с версии 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

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

Spec-Zone.ru

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