ipython에서 함수의 첫 번째 줄을 밟을 수있는 방법이 있습니까? 나는 같이 무언가를 상상 : ipdb
를 실행하고 foo
의 첫 번째 줄에 중단 점을 설정IPython에서 함수로 들어가기
%step foo(1, 2)
.
지금이 작업을 수행하려면 함수의 소스 코드로 가서 import ipdb; ipdb.set_trace()
행을 추가해야합니다.
ipython에서 함수의 첫 번째 줄을 밟을 수있는 방법이 있습니까? 나는 같이 무언가를 상상 : ipdb
를 실행하고 foo
의 첫 번째 줄에 중단 점을 설정IPython에서 함수로 들어가기
%step foo(1, 2)
.
지금이 작업을 수행하려면 함수의 소스 코드로 가서 import ipdb; ipdb.set_trace()
행을 추가해야합니다.
ipdb는 올해 초 0.7부터 runcall, runeval 및 run을 지원합니다. pdb.runcall
처럼 사용할 수 있습니다 :
In [1]: def foo(a, b):
...: print a + b
...:
In [2]: import ipdb
In [3]: ipdb.runcall(foo, 1, 2)
> <ipython-input-1-2e565fd9c4a4>(2)foo()
1 def foo(a, b):
----> 2 print a + b
3
ipdb>
그게 내가 필요한 것 같아. 0.7 업데이트를 지적 해 주셔서 감사합니다. 이전 버전이 있습니다. 그것 때문에 아마 runcall을 사용하는 ipython 마법을 추가하는 것이 쉽습니다. –
실제로 외부 ipdb가 필요 없다는 것이 밝혀졌습니다.'IPython.core.debugger import Pdb;에서 할 수 있습니다. ipdb = Pdb()'. –
가장 우아한 방법은 아닙니다. 저는 그러한 공통적 인 필요성에 대한 마법의 기능을 기대했습니다. SciPy 사용자에게 공통적 인 필요성이 아닌지 궁금합니다. –
'% step'과 같은 기능은 없습니다. '% run -d' 전체 스크립트를 실행할 수 있지만, 단일 명령문 또는 함수 호출에 대해 동일한 작업을 수행 할 수는 없습니다. 'pdb.run ("foo (1, 2)")'또는'pdb.runcall (foo, 1, 2)'를 수동으로 할 수 있습니다. – abarnert
나는 오늘도 똑같은 것을 궁금해하고 있었다. 나는 그것이 가능하다면이 모든 것을 사용할 것이다. 그것이 어떻게 구현 될 수 있는지보기 위해 iPython 소스를 조사 할 시간. –
[IPython에서 디버깅을 사용하여 명령을 실행할 수 있습니까?] (https://stackoverflow.com/questions/9689378/is-it-possible-to-run-commands-in-ipython-with-debugging) –