ipdb
내 프로그램에서 디버깅 프로세스를 시작 하는 데 사용하려고 Windows 7에서 Miniconda 3을 사용 하고 있습니다. 나는 ipdb
물론 (virtualenv에서) IPython을 설치했습니다 .
테스트 프로그램 :
#!/usr/bin/env python
import ipdb
def a():
for i in range(10):
print(i)
ipdb.set_trace()
print(100)
a()
내가 얻은 것은 파이썬이 계속해서 이와 같은 예외를 분출하는 무한 루프로 들어가기 시작한다는 것입니다.
Exception in thread Thread-3398:
Traceback (most recent call last):
File "C:\ACME\Dev\Miniconda3\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\ACME\Dev\Miniconda3\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\ACME\Dev\projects\example\venv\lib\site-packages\IPython\terminal\debugger.py", line 102, in in_thread
line = self.pt_app.prompt()
File "C:\ACME\Dev\projects\example\venv\lib\site-packages\prompt_toolkit\shortcuts\prompt.py", line 992, in prompt
return get_event_loop().run_until_complete(self._dumb_prompt(self.message))
File "C:\ACME\Dev\Miniconda3\lib\asyncio\events.py", line 644, in get_event_loop
% threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'Thread-3398'.
그 이유는 무엇이며 어떻게 해결할 수 있습니까?
버전 :
Python 3.7.6
ipdb==0.13.3
ipykernel==5.3.0
ipython==7.15.0
ipython-genutils==0.2.0
ipywidgets==7.5.1
(IPython과 관련하여 찾은 모든 패키지를 나열하고 중요하다면 Jupyter도 설치했습니다).
이전 스타일을 새 코드 조각으로 대체했습니다.
import ipdb;
ipdb.set_trace()
예를 들면 :
from IPython.core import debugger
debug = debugger.Pdb().set_trace
def buggy_method():
debug()
이 문제를 해결했습니다. https://github.com/ipython/ipython/pull/9731/ 참조 참조
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다