====== Python: Debug ====== | Examine exception from interpreter |jupyter notebook 'debug' | | Pinpoint variables in scope |import IPython; IPython.embed() | | Pinpoint variables in scope |import code; code.interact(local=locals()) | | ::: |whos | | Set breakpoint |import pudb; pudb.set_trace() | | Run with debugger |pudb -- xyz.py arg1 arg2 | | Start debugger on CTRL-C |import | | ::: |pudbpudb.set_interrupt_handler() | | Trace threads |import wdb; wdb.set_trace() | | Record logs |logging.getLogger(__name__) | | Debug tests |pip install pdbpp; py.test --pdb | * Debugging Tips, Roy Hyunjin Han, PyCon Asia Pacific 2016 import sys from ptpdb import set_trace sys.breakpointhook = set_trace # https://www.python.org/dev/peps/pep-0553/ os.environ['PYTHONBREAKPOINT'] = 'foo.bar.baz' breakpoint() # Imports foo.bar and calls foo.bar.baz() set PYTHONBREAKPOINT="from IPython import embed; embed()" * https://blog.ionelmc.ro/2013/06/05/python-debugging-tools/ * https://documen.tician.de/pudb/ * https://github.com/inducer/pudb * https://github.com/Kozea/wdb # web debugger ===== 원격 embed ===== * https://github.com/pandolia/remote_embed * https://github.com/romanvm/python-web-pdb ===== print 문 대안 ===== * https://github.com/gruns/icecream * https://github.com/robdmc/behold ===== CPU/Memory 사용량 측정/제한 ===== * https://towardsdatascience.com/python-tips-and-trick-you-havent-already-seen-37825547544f * https://python.flowdas.com/library/resource.html