ipdb.set_trace () 설정 시도 중 : RuntimeError : 스레드 'Thread -....'에 현재 이벤트 루프가 없습니다.

LetMeSOThat4U

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관