PyFixest 오픈 소스 프로젝트 관련, 어제 오픈소스 모임장인 알렉스랑 첫미팅을 했다. 환경설정이랑 코드 오버뷰였다. 나는 포아송 회귀식 (Poisson Regression) 관련 코드를 빠르게 하는 파트를 하기로 했다. 설명 중에 import pdb 가 디버깅할 때 요긴하게 사용된다고 하는데, 개념이 새로워서 공부 겸 ChatGPT 에게 물었던 내용을 메모해둔다.
(질문) import pdb 가 무엇이니?
(ChatGPT) import pdb는 Python 프로그램에서 디버깅을 하기 위해 Python Debugger (PDB) 모듈을 가져오는 데 사용되는 구문입니다. PDB 모듈은 인터랙티브 디버깅 환경을 제공하여 개발자가 브레이크포인트를 설정하고, 코드를 단계별로 실행하며, 변수를 검사하고, 표현식을 평가할 수 있게 해줍니다. 이는 Python 코드에서 버그를 찾고 수정하는 데 매우 유용한 도구입니다.
다음은 PDB의 주요 기능과 명령어에 대한 간략한 설명입니다
[1] 브레이크포인트 설정: 코드의 특정 라인에서 실행을 일시 중지하도록 브레이크포인트를 설정할 수 있습니다.
import pdb; pdb.set_trace()
또는 PDB 프롬프트에서 break 명령어를 사용할 수 있습니다:
(Pdb) break filename.py:line_number
[2] 코드 실행: PDB를 사용하여 스크립트를 실행하려면 명령 줄에 pdb를 추가합니다:
python -m pdb my_script.py
[3] 코드 단계별 실행:
- n (next): 현재 함수의 다음 라인까지 실행을 계속합니다.
- s (step): 현재 라인에서 호출된 함수로 들어갑니다.
- c (continue): 다음 브레이크포인트까지 실행을 계속합니다.
[4] 변수 검사:
- p variable_name: 지정된 변수의 값을 출력합니다.
- pp variable_name: 지정된 변수의 값을 보기 좋게 출력합니다.
- whatis variable_name: 지정된 변수의 타입을 출력합니다.
[5] 표현식 평가: PDB 프롬프트를 사용하여 모든 Python 표현식을 평가할 수 있습니다.
[6] 코드 목록 보기:
- l (list): 현재 라인 주변의 소스 코드를 표시합니다.
- ll (long list): 현재 함수 또는 프레임의 전체 소스 코드를 표시합니다.
[7] 디버거 종료: PDB를 종료하려면 다음 명령어를 사용합니다:
- q (quit): 디버거를 종료하고 프로그램을 종료합니다.
- exit(): 디버거를 종료합니다.
다음은 Python 스크립트에서 PDB를 사용하는 간단한 예제입니다:
def add(a, b):
result = a + b
return result
def main():
x = 5
y = 10
import pdb; pdb.set_trace() # 여기서 브레이크포인트를 설정합니다.
sum = add(x, y)
print(f"The sum is {sum}")
if __name__ == "__main__":
main()
이 스크립트를 실행하면 pdb.set_trace() 라인에서 실행이 일시 중지되고, PDB 인터랙티브 모드에 들어갑니다. 여기에서 변수를 검사하고, 코드를 단계별로 실행하며, 기타 디버깅 작업을 수행할 수 있습니다.
이 용어 말고도 몰랐던 내용을 하나씩 메모해서 정리해둬야겠다.
'데이터 과학 커리어 (feat. 경제학)' 카테고리의 다른 글
분석(가)에 관하여 (0) | 2023.05.28 |
---|---|
11월 구직 현황... (feat. 테크 hiring freeze...) (0) | 2022.11.28 |
취직 방향 (미국 경제학 박사) (0) | 2022.10.04 |
[근황] 여름방학, 학기시작, 그리고 취업 준비 (0) | 2022.10.03 |
[영문 라이팅] 간단한 영작문 교정 사이트 (feat. 헤밍웨이 에디터) (0) | 2022.06.23 |