Pycharm CE не достигает точек останова в моем проекте Django

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» (которой у меня нет, потому что я использую Community Edition), и я попытался удалить .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

У меня была аналогичная проблема ранее в PyCharm, когда я вызывал Executionor.submit. Мне пришлось вставить строку с запросом результатов кода, чтобы повторно вызвать ожидаемое поведение отладки. Если ваш код является многопоточным, вы можете начать с него.

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

Привет, я пишу этот ответ, так как не могу комментировать из-за моей репутации нет. Случайно ли вы установили инструментарий отладчика cython, который продолжает предлагать pycharm? Если да, то я столкнулся с той же проблемой. Решение состоит в том, чтобы как-то удалить Cython Speedups. Вы можете перейти по этой ссылке, чтобы сделать это.

В основном вам нужно перейти в каталог с именем _pydevd_bundleи удалить pydev*.soфайлы. Теперь для этого требуются привилегии root. Если он у вас есть и вы можете удалить их, то, скорее всего, он будет работать (при условии, что вы установили расширение отладчика cython).