Python, отлаживающий в Eclipse+PyDev

Я пробую пару Eclipse+PyDev за часть моей работы. (Eclipse v3.5.0 + PyDev v1.5.6) я не мог найти способ выставить все мои переменные к консоли PyDev (Консоль Through PyDev-> Консоль для текущей активной опции редактора), я использую простой код для описания проблемы. Когда я пошаговое движение через код я не могу получить доступ к своей "x" переменной от консоли. Это просматривается на вкладке Variables, но это не действительно, что я хочу.

Любая справка, ценят.

См. мой снимок экрана для лучшего описания:

alt text

Править:

Примите добавление простого func как:

def myfunc(x):
    return x**x

Когда я отлаживаю с функцией, добавленной в коде, я могу получить доступ к myfunc от консоли легко. (Введите myfunc, и это будет доступно после этого автоматического выполнения:

>>> from part2.test import myfunc
>>> myfunc

Затем, когда я делаю myfunc (5), он действует точно так же, как в интерпретаторе Python. Это было бы настолько полезно для переменных доступа подобным способом для отладки моего кода. У меня есть большие массивы, и я делаю различные тесты и операции во время процесса отладки. Как: Получите мой x и сделайте x.sum (), позже сделайте x [:: 10], или транспонируют, работают с другими массивами, наблюдают результаты, экспериментируют и т.д...

Надежда там будет лучшим решением.

7
задан Glorfindel 24 July 2019 в 09:06
поделиться

2 ответа

Для такого рода исследовательской отладки мне нравится использовать pdb, отладчик с батарейками. Я не использовал его в PyDev, поэтому не знаю, как все это сочетается друг с другом. Я предполагаю, что он будет делать то, что вы от него ожидаете. Пример его использования:

import pdb

def myfunc(x):
    pdb.set_trace()
    return x**x

Это прервется прямо перед выполнением оператора return, и это позволяет вам использовать полные операторы Pythonic, чтобы выяснить, что происходит. Я использую его как интерактивный оператор печати: устанавливаю место, в которое я хочу погрузиться, проверяю значения и вычисляю результаты, а также шаг за шагом наблюдаю, как это происходит. Возможно, это ленивый способ отладки, но иногда вам нужно больше информации, прежде чем вы сможете принимать менее ленивые решения: -)

Страница, на которую я обычно ссылаюсь, находится по адресу Python Conquers The Universe , которая также связывает несколько других источников информации.

2
ответ дан 7 December 2019 в 01:18
поделиться

Обновление:

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


К сожалению, реальная интерактивная консоль, которая была бы предпочтительным способом игры с кодом (с завершением кода и т.д. - http://pydev.org/manual_adv_interactive_console.html), не имеет связи с сеансом отладки (это планируется, но пока не реализовано).

Тем не менее, при наличии "более простой" консоли, вы все еще можете интерактивно осматривать и играть с переменными, доступными в области действия точки останова: http://pydev.org/manual_adv_debug_console.html (это то же самое, что и в pdb - просто набрать код в доступной консоли после того, как точка останова была достигнута).

Cheers,

Fabio

8
ответ дан 7 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: