Pycharm CE não atinge pontos de interrupção em meu projeto Django

Dec 24 2020

Tenho meu projeto devidamente configurado para funcionar manage.pyno lugar certo, com as configurações certas.

Também tenho pontos de interrupção de depuração definidos em um método que sei com certeza está sendo executado (coloquei uma instrução de impressão lá e ela foi executada conforme o esperado). Os pontos de interrupção não são desabilitados ou condicionais:

Quando clico no botão "Executar no modo de depuração", usando a configuração de execução acima (tenho certeza que é a mesma porque é a única que configurei para este projeto), esta é a saída do console que recebo:

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.

Quando tentei inserir um ponto de interrupção manage.py, ele funcionou conforme o esperado, disparando apenas quando eu clicava no botão 'depurar'. No entanto, depois que o aplicativo foi iniciado, quando eu uso um cliente REST para acionar o método acima, aquele com pontos de interrupção nele, os pontos de interrupção não são acionados e o depurador não inicia. Recebo uma 200 OKresposta em meu cliente REST, mas o PyCharm não para e executa o depurador em nenhum momento.

Eu olhei outras respostas que recomendavam a configuração de "depuração compatível com Gevent" (que eu não tenho, porque estou usando o Community Edition) e tentei excluir a .idea/pasta do projeto, o que também não corrigiu o problema . Não tenho certeza do que mais pode estar causando isso. Eu só quero depurar meu programa.

As informações da minha versão do PyCharm são

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

O que pode estar fazendo com que os pontos de interrupção não sejam acionados e como faço para corrigir isso? Preciso de pontos de interrupção para depurar outras partes do meu programa.

Respostas

2 SLDem Jan 03 2021 at 02:49

Você está executando o servidor em um console por acaso? Se for esse o caso, tente interromper a execução do servidor no console e reinicie o do PyCharm

1 C.Cooney Jan 03 2021 at 01:35

Eu estava tendo um problema semelhante anteriormente no PyCharm quando estava chamando executor.submit. Tive que inserir uma linha solicitando os resultados do código para invocar novamente o comportamento de depuração esperado. Se o seu código for encadeado, você pode querer começar por aí.

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

Edit: Adicionando o link ao tópico que me ajudou com um comportamento semelhante no PyCharm. concurrent.futures.ThreadPoolExecutor não imprime erros

1 Henri Jan 06 2021 at 17:53

Minha configuração de trabalho atual é:

Ele não possui nenhum caminho de script ou parâmetros.

Quando clico no botão verde "Depurar", o comando executado automaticamente é: /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

E o seu ?

ShishirJha Jan 08 2021 at 03:30

Olá, estou escrevendo esta resposta porque não posso comentar por causa de minha reputação no. Por acaso, você instalou o kit de ferramentas do depurador cython que o pycharm insiste em sugerir? Nesse caso, enfrentei o mesmo problema. A solução é excluir de alguma forma os aceleradores de cito. Você pode seguir este link para fazer isso.

Basicamente, você tem que ir ao diretório chamado _pydevd_bundlee deletar os pydev*.soarquivos. Agora, isso requer privilégio de root. Se você tiver isso e for capaz de excluí-los, provavelmente funcionará (desde que você tenha instalado a extensão do depurador cython).