내 Django 프로젝트에서 Pycharm CE가 중단 점에 도달하지 않음

Dec 24 2020

manage.py올바른 설정으로 올바른 위치에서 실행되도록 프로젝트를 올바르게 구성 했습니다.

또한 확실하게 실행되고 있음을 알고있는 메서드에 디버그 중단 점이 설정되어 있습니다 (인쇄 문을 거기에 넣고 예상대로 실행 됨). 중단 점은 비활성화되지 않거나 조건부입니다.

위의 실행 구성을 사용하여 "디버그 모드에서 실행"버튼을 눌렀을 때 (이 프로젝트에 대해 구성한 유일한 구성이므로 동일한 구성이라고 확신합니다) 다음은 콘솔 출력입니다.

pydev debugger: process 38083 is connecting

Connected to pydev debugger (build 192.5728.105)
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
December 23, 2020 - 19:22:22
Django version 3.1.4, using settings 'FEArena.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

에 중단 점을 넣으려고 시도했을 때 manage.py예상대로 작동하여 '디버그'버튼을 눌렀을 때 트리거되었습니다. 그러나 앱이 시작된 후 REST 클라이언트를 사용하여 중단 점이있는 위 메서드를 트리거하면 중단 점이 트리거되지 않고 디버거가 시작되지 않습니다. 내가 얻을 200 OK내 REST 클라이언트의 응답을하지만, PyCharm 중지하고 어떤 점에서 디버거를 실행하지 않습니다.

나는 "Gevent 호환 디버깅"(커뮤니티 에디션을 사용하고 있기 때문에 내가 가지고 있지 않음) 설정을 권장하는 다른 답변을 보았고 .idea/프로젝트 의 폴더를 삭제하려고 시도했지만 문제가 해결되지 않았습니다. . 다른 원인이 무엇인지 잘 모르겠습니다. 프로그램을 디버그하고 싶습니다.

내 PyCharm 버전 정보는

PyCharm 2019.2 (Community Edition)
Build #PC-192.5728.105, built on July 23, 2019
Runtime version: 11.0.3+12-b304.10 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.7
GC: ParNew, ConcurrentMarkSweep
Memory: 4029M
Cores: 8
Registry: 
Non-Bundled Plugins: com.karateca.jstoolbox, mobi.hsz.idea.latex, net.seesharpsoft.intellij.plugins.csv, nl.rubensten.texifyidea, org.intellij.plugins.markdown

중단 점이 트리거되지 않는 원인은 무엇이며 어떻게 수정합니까? 프로그램의 다른 부분을 디버깅하려면 중단 점이 필요합니다.

답변

2 SLDem Jan 03 2021 at 02:49

혹시 콘솔에서 서버를 실행하고 있습니까? 이 경우 콘솔에서 실행중인 서버를 중지하고 PyCharm에서 서버를 다시 시작하십시오.

1 C.Cooney Jan 03 2021 at 01:35

executor.submit을 호출 할 때 이전에 PyCharm에서 비슷한 문제가 발생했습니다. 예상되는 디버깅 동작을 다시 호출하기 위해 코드 결과를 요청하는 줄을 삽입해야했습니다. 코드가 스레드 된 경우 여기에서 시작하는 것이 좋습니다.

future = executor.submit(control, channel) # spawn a function control(channel)
print(f'Future result is: {future.result()}') # new line I had to add to enable debugging

편집 : PyCharm에서 비슷한 동작을하는 데 도움이 된 스레드에 대한 링크 추가. concurrent.futures.ThreadPoolExecutor가 오류를 인쇄하지 않습니다.

1 Henri Jan 06 2021 at 17:53

내 현재 작업 구성은 다음과 같습니다.

스크립트 경로 또는 매개 변수가 없습니다.

"디버그"녹색 버튼을 클릭하면 자동으로 실행되는 명령은 다음과 같습니다. /Users/.../virtualenv/bin/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 55583 --file /Users/.../manage.py runserver 8000

네 것은 어때 ?

ShishirJha Jan 08 2021 at 03:30

안녕하세요 저는 제 평판이 아니기 때문에 댓글을 달 수 없기 때문에이 답변을 작성하고 있습니다. 혹시 pycharm이 계속 제안하는 cython 디버거 툴킷을 설치 했습니까? 그렇다면 동일한 문제에 직면했습니다. 해결책은 어떻게 든 cython 속도 향상을 삭제하는 것입니다. 이 링크를 따라 가면됩니다.

기본적으로라는 디렉토리로 이동하여 파일을 _pydevd_bundle삭제해야 pydev*.so합니다. 이제 루트 권한이 필요합니다. 당신이 그것을 가지고 있고 당신이 그들을 삭제할 수 있다면, 아마도 작동 할 것입니다 (cython 디버거 확장을 설치했다면).