автоматическая красивая печать в python pdb

Я довольно часто делаю это в pdb:

import pprint
pprint.PrettyPrinter().pprint(variable_of_interest)

Есть ли лучший способ красиво печатать переменные из pdb? Я ищу что-то более легкое для ввода, и в идеале что-то, что всегда доступно в pdb, чтобы я мог использовать его в любое время при отладке.


person nonagon    schedule 15.08.2014    source источник


Ответы (4)



Как @enrico.bacis упомянул, что pp можно использовать для красивой печати при использовании pdb.

(Pdb) pp your_var
person mrprofessor    schedule 07.09.2020

Когда вы находитесь в оболочке (Pdb):

(Pdb)$ import pprint

# then you can pretty print your variables.
(Pdb)$ pp( locals() )
(Pdb)$ pp(request.data)

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

person HashRocketSyntax    schedule 12.05.2019

Вот как я это делаю:

import pdb
import pprint

"""
Debugging views
pdb.set_trace()

With pretty-print
pp(my_var)
"""
def my_view(request):
    pdb.set_trace()
    # rest of view

Затем в отладчике:

> (Pdb) pp(my_var)

Хотя я хотел бы знать, как отредактировать настройки pdb, чтобы изменить p на pp

person HashRocketSyntax    schedule 15.07.2018