PyDev: как вызвать отладку конкретной команды из консоли (с точками останова)?
Предположим, я написал функцию, которую хочу отладить.
PyDev очень помогает при отладке с помощью расширенных функций, таких как точки останова.
После установки точек останова один из способов отладки состоит в том, чтобы написать вызов функции вdef main()
или просто в теле модуля, и нажмите кнопка.
Можно ли запустить сеанс отладки функции вместе с ее аргументами из консоли? (Прямо как в RStudio или VBA ...)
Этот вопрос является дубликатомpydev: отладка в режиме консоли (интерактивная)?
Обновление: я действительно не знаю, какова волшебная комбинация щелчков, которые делают интерактивную отладку возможной.
Вот что я делаю, чтоне работает (в Ubuntu 14.04 и Eclipse 4.4.I20140606-1215 с PyDev 3.6.0.2014062323, Python 3.4.0, IPython 1.2.1)
Первая попытка:Сначала я создаю новый проект PyDev:
Затем я вставляю новый файл .py с некоторым кодом и создаю несколько точек останова:
Затем я щелкаю правой кнопкой мыши где-то на код,Debug As...
->Python run
.
И тогда открываются 2 консоли, ни одна из них не является IPython. Активная консоль называется[Debug console] proba.py
. Ввод команд в эту консоль не заставляет компьютер выполнять их.
Доступна другая консоль, названная простоproba.py
. Эта консоль полностью интерактивная, хотяэто не IPython.
Это действительно интерактивный отладчик. Можно пройти по коду и проверить переменные. К сожалению, обновление переменных не поддерживается; если я введу командуa=10
переменная не обновляется.
На этот раз перед запуском сеанса отладки попробуем запустить IPython. После Ctrl + Alt + Enter я выбираюConsole for currently active editor
:
Затем Python3 (потому что это то, что мне нужно):
После этого у меня есть полностью рабочая консоль IPython.
Когда я запускаю файл черезexecfile
, это вызывает ошибкуFailed to create input stream: Read timed out
:
Хотя кажется, что пошаговое выполнение кода работает, я не могу получить доступ к переменным из консоли IPython, хотя можно получить к ним доступ из представления Variables: