Проблема с отладкой Python 3

#python #debugging #python-idle

#python #отладка #python-простаивает

Вопрос:

Недавно я начал изучать Python 3 и столкнулся с проблемой при попытке научиться отлаживать с помощью IDLE. Я создал базовую программу, следуя руководству, в котором затем объясняется, как использовать отладчик. Однако я продолжаю сталкиваться с проблемой при пошаговом просмотре кода, которую не объясняет руководство (я идеально следовал инструкциям), равно как и часы поиска в Интернете. В принципе, если я перехожу, уже находясь внутри функции, обычно после print () отладчик переходит в pyshell.py в частности, PyShell.py:1285: write() если я выйду из pyshell, отладчик просто вернется, как только я попытаюсь двигаться дальше, если это повторится, кнопки step, go и т.д. станут серыми.

Любая помощь будет высоко оценена. Спасибо.

Комментарии:

1. Вы можете попробовать использовать лучший отладчик WingIDE

2. Вы пробовали переходить через ?

3. Спасибо за ответы, да, я пытался перейти. Как только я пытаюсь снова выполнить переход, находясь внутри функции, она возвращается в pyshell. Теперь попробую WingIDE, приветствую.

4. Используете ли вы pdb? Это так, он действует правильно. Проблема в том, что пользовательский код Idle exec, использующий код Python, а не только C-код, и pdb предназначен для перехода в код Python. Idle имеет свой собственный графический отладчик, который знает, как Idle выполняет код. У него не должно быть такой же проблемы. Недавно я исправил его, чтобы точки останова работали намного лучше. Улучшение будет в версиях 3.4.2 и 2.7.9.

Ответ №1:

pyshell.py файл открывается в процессе отладки, когда в библиотеке Python найдена проверяемая функция — например, print() или input(). Если вы хотите обойти этот файл / процесс, щелкните по нему, и он перейдет к этому обзору функции в библиотеке Python.

Ответ №2:

В Python 3.4 у меня была такая же проблема. Мой учебник взят из Invent with Python Эла Свейгарта, глава 7.

Новые окна редактора файлов, такие как pyshell.py и random.py , открываются при вызове встроенных функций, таких как input() , print() , random.randint() и т.д. Затем STEP кнопка начинает пошаговый просмотр файла, который она открыла.

Если вы нажмете OVER , вам придется щелкнуть по нему несколько раз, но если вы нажмете OUT , pyshell.py он немедленно закроется, и вы вернетесь к исходному файлу, который пытались отладить.

Кроме того, я столкнулся с проблемами, сбивающими с толку эту — упомянутые вами серые кнопки — если я забыл щелкнуть в командной строке и ввести данные, когда программа запросила. Я попробовал Wing IDE, и она не запустила программу корректно, хотя в программе нет ошибок. Итак, я погуглил проблему, и не было никаких указаний на то, что IDLE она сломана или бесполезна.

Поэтому я продолжал попытки, пока OUT кнопка в IDLE отладчике не решила проблему.