2017-12-05 8 views
0

마찬가지로이 (매우 유용합니다!) 두 가지 기능 :파이썬 스파이더 - 현재 셀 또는 선택 만 디버그 하시겠습니까?

가 디버깅이 작업을 수행하는 것이 가능 "실행 선택 또는 현재 행을" "현재 셀을 실행"? 나는 디버깅 할 때마다 큰 스크립트 파일의 맨 위에서 시작하고 싶지 않다. 당신이 당신의 통역 IPython를 사용하는 경우

난 당신이 오류가 발생하면 자동으로 pdb을 시작 IPython의 마법 %pdb를 사용, 스파이더 버전 3.2.4

+0

F12 키를 사용하여 스크립트에 중단 점을 배치 할 수 있습니다. 디버거를 시작할 지점에 중단 점을 배치 한 다음 스크립트를 실행할 수 있습니까? – KPLauritzen

+0

어떻게 디버거가 "시작"하도록 알려주는 중단 점을 배치합니까? 두 개의 중단 점을 배치하면 여전히 파일 시작 부분부터 시작됩니다. 중단 점은 다음 코드로 "점프"하기위한 것입니다 (건너 뛸 코드는 여전히 실행해야합니다). – HerrErik

+0

Ok. 나는 당신이 원했던 것에 대해 약간 불분명했다. – KPLauritzen

답변

0

을 할 수 있습니다 사용하고 있습니다.

그런 다음 "현재 셀 실행"을 수행하고 필요할 때 디버거로 나갈 수 있습니다.

예를 들어 나는 간단한 스크립트가 있습니다

my_var = 4 
raise ValueError 

는 이제 IPython 터미널에서 내가 처음 %pdb를 실행 한 다음 내 스크립트를 실행합니다.

In [4]: my_var = 4 
    ...: raise ValueError 
Traceback (most recent call last): 

    File "<ipython-input-4-31dc119cb1f3>", line 2, in <module> 
    raise ValueError 

ValueError 

> <ipython-input-4-31dc119cb1f3>(2)<module>() 
     1 my_var = 4 
----> 2 raise ValueError 


ipdb> 

및 사용할 수있는 디버거가 있습니다.

+0

나는 그것을 시험해 보았다. % pdb라고 쓰고 "pdb 자동 호출이 켜져 있습니다"라고 표시됩니다. 그러나 내 셀을 실행하면 디버거가 시작되지 않습니다. "한 번에 한 줄씩"모드로 전환해야합니까? 현재 셀을 실행하면 정상적으로 실행됩니다 (디버거 없음). 디버그를 시작하면 파일의 맨 위에서 시작합니다. – HerrErik

+0

오류가 발생하면 디버거로만 이동합니다. 그 시점에서 디버거를 시작하려면 소스 코드에 "raise"를 추가하면됩니다. – KPLauritzen

+0

시도해 보았습니다. 이제 "RuntimeError : 재 활성화 할 활성 예외 없음"이라고 표시되고 디버그 모드가 존재하며 정상 실행으로 계속됩니다. 코드의 ... – HerrErik