Pycharm CE tidak mencapai breakpoint dalam proyek Django saya

Dec 24 2020

Saya memiliki proyek saya yang dikonfigurasi dengan benar untuk berjalan manage.pydi tempat yang tepat, dengan pengaturan yang tepat.

Saya juga memiliki breakpoint debug yang ditetapkan dalam metode yang saya tahu pasti sedang dieksekusi (saya telah meletakkan pernyataan cetak di sana dan dieksekusi seperti yang diharapkan). Titik putus tidak dinonaktifkan atau bersyarat:

Ketika saya menekan tombol "Jalankan dalam mode debug", menggunakan konfigurasi jalankan di atas (saya yakin itu sama karena itu satu-satunya yang saya konfigurasikan untuk proyek ini), ini adalah keluaran konsol yang saya dapatkan:

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.

Ketika saya mencoba memasukkan breakpoint manage.py, itu berfungsi seperti yang diharapkan, memicu tepat ketika saya menekan tombol 'debug'. Namun, setelah aplikasi dimulai, ketika saya menggunakan klien REST untuk memicu metode di atas, metode yang memiliki breakpoint di dalamnya, breakpoint tidak terpicu dan debugger tidak dimulai. Saya mendapat 200 OKrespons di klien REST saya, tetapi PyCharm tidak berhenti dan menjalankan debugger kapan saja.

Saya melihat jawaban lain yang menyarankan pengaturan "Debugging kompatibel dengan Gevent" (yang tidak saya miliki, karena saya menggunakan Community Edition), dan saya sudah mencoba menghapus .idea/folder untuk proyek tersebut, yang juga tidak memperbaiki masalah . Saya tidak yakin apa lagi yang bisa menyebabkan ini. Saya hanya ingin men-debug program saya.

Informasi versi PyCharm saya adalah

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

Apa yang dapat menyebabkan breakpoint tidak terpicu, dan bagaimana cara mengatasinya? Saya perlu breakpoint untuk men-debug bagian lain dari program saya.

Jawaban

2 SLDem Jan 03 2021 at 02:49

Apakah Anda menjalankan server Anda di konsol secara kebetulan? Jika demikian, coba hentikan server yang berjalan di konsol dan mulai ulang server di PyCharm

1 C.Cooney Jan 03 2021 at 01:35

Saya mengalami masalah serupa sebelumnya di PyCharm ketika saya memanggil executor.submit. Saya harus memasukkan baris yang meminta hasil kode untuk memanggil kembali perilaku debugging yang diharapkan. Jika kode Anda berulir, Anda mungkin ingin memulainya dari sana.

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

Sunting: Menambahkan tautan ke utas yang membantu saya dengan perilaku serupa di PyCharm. concurrent.futures.ThreadPoolExecutor tidak mencetak kesalahan

1 Henri Jan 06 2021 at 17:53

Konfigurasi kerja saya saat ini adalah ini:

Itu tidak memiliki jalur skrip atau parameter apa pun.

Ketika saya mengklik tombol hijau "Debug", perintah yang diluncurkan secara otomatis adalah: /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

Bagaimana denganmu?

ShishirJha Jan 08 2021 at 03:30

Hai, saya menulis jawaban ini karena saya tidak dapat berkomentar karena reputasi saya tidak. Kebetulan, apakah Anda menginstal toolkit debugger cython yang terus disarankan oleh pycharm? Jika demikian, saya menghadapi masalah yang sama. Solusinya adalah dengan menghapus speedups cython. Anda dapat mengikuti tautan ini untuk melakukan itu.

Pada dasarnya Anda harus pergi ke direktori bernama _pydevd_bundledan menghapus pydev*.sofile. Sekarang itu membutuhkan hak akses root. Jika Anda memilikinya dan Anda dapat menghapusnya, kemungkinan besar itu akan berfungsi (asalkan Anda telah menginstal ekstensi debugger cython).