Pycharm CE nie osiąga punktów przerwania w moim projekcie Django
Mam poprawnie skonfigurowany projekt, aby działał manage.py
we właściwym miejscu, z odpowiednimi ustawieniami.

Mam również punkty przerwania debugowania ustawione w metodzie, o której wiem z pewnością, że jest wykonywana (umieściłem tam instrukcję print i została wykonana zgodnie z oczekiwaniami). Punkty przerwania nie są wyłączone ani warunkowe:

Kiedy naciskam przycisk „Uruchom w trybie debugowania”, używając powyższej konfiguracji uruchamiania (jestem pewien, że jest to ta sama konfiguracja, ponieważ jest to jedyna skonfigurowana dla tego projektu), otrzymuję wynik konsoli:
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.
Kiedy próbowałem wstawić punkt przerwania manage.py
, działało zgodnie z oczekiwaniami, uruchamiając się po naciśnięciu przycisku „debuguj”. Jednak po uruchomieniu aplikacji, gdy używam klienta REST do wyzwalania powyższej metody, tej z punktami przerwania, punkty przerwania nie są wyzwalane, a debugger nie uruchamia się. Otrzymuję 200 OK
odpowiedź w moim kliencie REST, ale PyCharm nie zatrzymuje się i nie uruchamia debugera w żadnym momencie.
Spojrzałem na inne odpowiedzi, które zalecały ustawienie „debugowania zgodnego z Gevent” (którego nie mam, ponieważ używam wersji Community) i próbowałem usunąć .idea/
folder projektu, co również nie rozwiązało problemu . Nie jestem pewien, co jeszcze może to powodować. Chcę tylko debugować swój program.
Informacje o mojej wersji PyCharm to
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
Co może powodować, że punkty przerwania nie są wyzwalane i jak to naprawić? Potrzebuję punktów przerwania do debugowania innych części mojego programu.
Odpowiedzi
Czy masz przypadkiem serwer w konsoli? W takim przypadku spróbuj zatrzymać serwer działający w konsoli i zrestartuj serwer w PyCharm
Miałem podobny problem wcześniej w PyCharm, kiedy wywoływałem executor.submit. Musiałem wstawić wiersz z żądaniem wyników kodu, aby ponownie wywołać oczekiwane zachowanie debugowania. Jeśli twój kod jest podzielony na wątki, możesz zacząć od tego.
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
Edycja: dodanie linku do wątku, który pomógł mi w podobnym zachowaniu w PyCharm. concurrent.futures.ThreadPoolExecutor nie drukuje błędów
Moja obecna konfiguracja robocza dotyczy tego:

Nie ma żadnej ścieżki ani parametrów skryptu.
Kiedy kliknę zielony przycisk „Debuguj”, automatycznie uruchomione polecenie to: /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
Co z twoim ?
Cześć, piszę tę odpowiedź, ponieważ nie mogę komentować z powodu mojej reputacji nie. Czy przypadkiem zainstalowałeś zestaw narzędzi do debuggera Cython, który pycharm ciągle sugeruje? Jeśli tak, napotkałem ten sam problem. Rozwiązaniem jest usunięcie w jakiś sposób przyspieszeń cythona. Możesz skorzystać z tego linku, aby to zrobić.
Zasadniczo musisz przejść do katalogu o nazwie _pydevd_bundle
i usunąć pydev*.so
pliki. Teraz to wymaga uprawnień roota. Jeśli masz to i możesz je usunąć, najprawdopodobniej zadziała (pod warunkiem, że zainstalowałeś rozszerzenie cython debugger).