Pycharm CE tidak mencapai breakpoint dalam proyek Django saya
Saya memiliki proyek saya yang dikonfigurasi dengan benar untuk berjalan manage.py
di 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 OK
respons 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
Apakah Anda menjalankan server Anda di konsol secara kebetulan? Jika demikian, coba hentikan server yang berjalan di konsol dan mulai ulang server di PyCharm
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
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?
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_bundle
dan menghapus pydev*.so
file. 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).