Pycharm CE ไม่กดจุดหยุดในโครงการ Django ของฉัน
ฉันมีการกำหนดค่าโครงการอย่างเหมาะสมให้ทำงานmanage.pyในสถานที่ที่ถูกต้องโดยมีการตั้งค่าที่เหมาะสม
ฉันยังมีจุดพักการดีบักที่ตั้งค่าในวิธีการที่ฉันรู้ว่ากำลังดำเนินการด้วยความแน่นอน (ฉันใส่คำสั่งพิมพ์ไว้ที่นั่นและดำเนินการตามที่คาดไว้) เบรกพอยต์ไม่ได้ปิดใช้งานหรือมีเงื่อนไข:
เมื่อฉันกดปุ่ม "Run in debug mode" โดยใช้การกำหนดค่าการรันด้านบน (ฉันแน่ใจว่าเป็นแบบเดียวกันเพราะเป็นรายการเดียวที่ฉันกำหนดค่าสำหรับโครงการนี้) นี่คือเอาต์พุตคอนโซลที่ฉันได้รับ:
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
อะไรที่อาจทำให้เบรกพอยต์ไม่ถูกทริกเกอร์และฉันจะแก้ไขได้อย่างไร ฉันต้องการเบรกพอยต์เพื่อดีบักส่วนอื่น ๆ ของโปรแกรมของฉัน
คำตอบ
คุณใช้เซิร์ฟเวอร์ของคุณในคอนโซลโดยบังเอิญหรือไม่? หากเป็นเช่นนั้นให้ลองหยุดเซิร์ฟเวอร์ที่รันในคอนโซลและรีสตาร์ทเซิร์ฟเวอร์ใน PyCharm
ก่อนหน้านี้ฉันมีปัญหาที่คล้ายกันใน PyCharm เมื่อฉันเรียกใช้ executor.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 ไม่พิมพ์ข้อผิดพลาด
การกำหนดค่าการทำงานปัจจุบันของฉันอยู่ในสิ่งนี้:
ไม่มีพา ธ สคริปต์หรือพารามิเตอร์ใด ๆ
เมื่อฉันคลิกที่ปุ่มสีเขียว "Debug" คำสั่งที่เปิดขึ้นโดยอัตโนมัติคือ: /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
แล้วของคุณล่ะ?
สวัสดีฉันกำลังเขียนคำตอบนี้เนื่องจากฉันไม่สามารถแสดงความคิดเห็นได้เนื่องจากชื่อเสียงของฉันไม่ คุณได้ติดตั้งชุดเครื่องมือดีบักเกอร์ cython ที่ pycharm แนะนำหรือไม่? ถ้าเป็นเช่นนั้นฉันประสบปัญหาเดียวกัน วิธีแก้ปัญหาคือการลบ cython speedups อย่างใด คุณสามารถไปที่ลิงค์นี้เพื่อดำเนินการดังกล่าว
โดยทั่วไปคุณต้องไปที่ไดเร็กทอรีที่เรียก_pydevd_bundleและลบpydev*.soไฟล์ ตอนนี้ต้องใช้สิทธิ์รูท หากคุณมีสิ่งนั้นและคุณสามารถลบได้ส่วนใหญ่แล้วมันจะใช้งานได้ (หากคุณได้ติดตั้งส่วนขยายตัวดีบักเกอร์ cython)