Python으로 프로그래밍을 하다 보면, 반복해서 수행하는 함수나 loop등에서 변수들의 상태를 모니터링하고 싶은 경우가 많습니다. 물론 print 함수를 이용해서 하나 하나 trace할 수도 있지만, Python이 제공하는 디버깅 기능을 이용하면 좋습니다.
기본적인 예제는 다음과 같습니다.
from IPython.core.debugger import set_trace
sum = 0
for i in range(10):
sum += i
set_trace()
set_trace()가 동작할 때는 jupyter notebook에 아래와 같은 입력창이 활성화됩니다.
입력창에 필요한 디버깅 command를 입력하거나, 확인하고자 하는 변수를 입력하고 enter를 눌러 결과를 확인할 수 있습니다.
디버깅 command와 관련해서는 입력창에 'help'를 입력하면 아래와 같이 사용가능한 command들이 나타납니다. 그리고 디버깅 command에 대해서 좀 더 확인하고 싶으면, 'help command명'을 입력하면 설명을 확인할 수 있습니다.
아래는 위의 예제를 실제 실행하면서, i와 sum 변수를 중간 중간 출력한 화면입니다. 출력 이후 다시 실행하기 위해서는 'c' 명령을 입력하였습니다. 마지막으로 디버깅을 멈추기 위해서는 'q'를 입력했습니다.
만약 'q'를 입력해서 프로그램을 종료하지 않은 상태로, jupyter notebook의 다른 명령을 실행시키는 경우 실행이 종료되지 않습니다. 이 경우 해당 notebook을 'Shutdown'후 다시 실행하면 됩니다.
- End -
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] Unicode error (0) | 2021.11.23 |
---|---|
[Python] 폴더 생성, tar 예제 (0) | 2020.05.03 |
[Python] Animation 예제 (0) | 2020.05.03 |
[Python] matplotlib 예제 (0) | 2020.05.03 |