Перенос пространства имен Ipython в ipdb - PullRequest
4 голосов
/ 12 апреля 2011

Я нахожусь в середине сессии ipython.Я загрузил модуль foo, который содержит функцию foo.bar.Работая, я замечаю, что foo.bar дает какой-то странный вывод, когда я передаю ему какой-то ввод x, где x - переменная в моей локальной области видимости ipython.Я хотел бы исследовать поведение в отладчике.

Как бы установить точку останова на foo.bar и запустить foo.bar(x) в отладчике?

Я знаю о pdb.set_trace(), номне потребуется открыть код модуля foo, чтобы вручную вставить точку останова, сохранить ее, перезагрузить модуль в ipython и т. д. Должен быть лучший способ.

1 Ответ

5 голосов
/ 12 апреля 2011

Я полагаю, что вы можете использовать pdb.runcall в этом случае:

import pdb
pdb.runcall(foo.bar, x)
...