Spec-Zone.ru › Python 3.10

IDLE

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

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

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

  • написан на 100% чистом Python, используя GUI-набор инструментов 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.

Демонстрация Turtle

Запустите модуль 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 Вверх/Page Вниз для перемещения
  • C-Стрелка влево и C-Стрелка вправо перемещает по словам
  • 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 expresion установлен, целевой фрагмент интерпретируется согласно модулю Python re.

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

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

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

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

Нажатие 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-стрелка вверх извлекает предыдущую команду, соответствующую тому, что вы набрали. В macOS используйте Ctrl-стрелка вверх.
    • Alt-стрелка вниз извлекает следующую. В macOS используйте Ctrl-стрелка вниз.
    • Возврат, в то время как курсор находится на любой предыдущей команде, извлекает эту команду

Цвета текста

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 используйте диспетчер задач, чтобы проверить наличие такого процесса и остановить его, если он есть. Иногда перезапуск, вызванный сбоем программы или прерыванием с клавиатуры (Control-C), может не удаться подключиться. Закрытие диалогового окна с ошибкой или использование команды «Перезапустить оболочку» в меню «Оболочка» может устранить временную проблему.

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

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

В системах на основе Unix с tcl/tk старше версии 8.6.11 (см. About IDLE) определённые символы определённых шрифтов могут привести к ошибке tk с сообщением в терминале. Это может произойти, если вы запустили IDLE для редактирования файла с таким символом или позже при вводе такого символа. Если вы не можете обновить tcl/tk, переконфигурируйте IDLE, чтобы использовать более подходящий шрифт.

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

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

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

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

Стандартные замены потоков IDLE не наследуются подпроцессами, созданными в процессе выполнения, независимо от того, созданы ли они напрямую кодом пользователя или модулями, такими как multiprocessing. Если такие подпроцессы используют input из sys.stdin или print или write в sys.stdout или sys.stderr, IDLE необходимо запустить в окне командной строки. (В 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, отображает символы (кодовые точки) в подмножестве 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. Тогда сразу появляется приглашение командной строки и можно взаимодействовать с активным приложением. Нужно лишь помнить о необходимости повторной активации вызова mainloop при запуске в стандартном Python.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IDLE на macOS

В системе macOS в настройках «Панель задач» можно установить «Предпочитать вкладки при открытии документов» в положение «Всегда». Эта настройка несовместима с фреймворком tk/tkinter GUI, используемым 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.10/library/idle.html

Spec-Zone.ru

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