#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
отладчике не решила проблему.