Pycharm CE không đạt điểm ngắt trong dự án Django của tôi
Tôi đã định cấu hình đúng dự án của mình để chạy manage.pyở đúng nơi, với các cài đặt phù hợp.
Tôi cũng có các điểm ngắt gỡ lỗi được đặt trong một phương thức mà tôi biết chắc chắn đang được thực thi (Tôi đã đặt một câu lệnh in ở đó và nó được thực thi như mong đợi). Các điểm ngắt không bị vô hiệu hóa hoặc có điều kiện:
Khi tôi nhấn nút "Chạy ở chế độ gỡ lỗi", bằng cách sử dụng cấu hình chạy ở trên (tôi chắc chắn đó là cấu hình giống nhau vì đó là cấu hình duy nhất tôi đã định cấu hình cho dự án này), đây là đầu ra bảng điều khiển mà tôi nhận được:
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.
Khi tôi thử đưa một điểm ngắt vào manage.py, nó hoạt động như mong đợi, kích hoạt ngay khi tôi nhấn nút 'gỡ lỗi'. Tuy nhiên, sau khi ứng dụng đã khởi động, khi tôi sử dụng một ứng dụng khách REST để kích hoạt phương pháp trên, phương pháp có các điểm ngắt trong đó, các điểm ngắt không kích hoạt và trình gỡ lỗi không khởi động. Tôi nhận được 200 OKphản hồi trong ứng dụng khách REST của mình, nhưng PyCharm không dừng và thực thi trình gỡ lỗi tại bất kỳ thời điểm nào.
Tôi đã xem các câu trả lời khác khuyên bạn nên đặt "Gỡ lỗi tương thích với Gevent" (mà tôi không có, vì tôi đang sử dụng Phiên bản Cộng đồng) và tôi đã thử xóa .idea/thư mục cho dự án, điều này cũng không khắc phục được sự cố . Tôi không chắc điều gì khác có thể gây ra điều này. Tôi chỉ muốn gỡ lỗi chương trình của mình.
Thông tin phiên bản PyCharm của tôi là
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
Điều gì có thể khiến các điểm ngắt không được kích hoạt và làm cách nào để khắc phục điều này? Tôi cần các điểm ngắt để gỡ lỗi các phần khác trong chương trình của mình.
Trả lời
Bạn có đang chạy máy chủ của mình trong một bảng điều khiển không? Nếu đúng như vậy, hãy thử dừng chạy máy chủ trong bảng điều khiển và khởi động lại máy chủ trong PyCharm
Tôi đã gặp sự cố tương tự trước đây trong PyCharm khi tôi đang gọi execute.submit. Tôi đã phải chèn một dòng yêu cầu kết quả của mã để gọi lại hành vi gỡ lỗi mong đợi. Nếu mã của bạn là một chuỗi, bạn có thể muốn bắt đầu ở đó.
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
Chỉnh sửa: Thêm liên kết vào chuỗi đã giúp tôi có hành vi tương tự trong PyCharm. concurrent.futures.ThreadPoolExecutor không in lỗi
Cấu hình làm việc hiện tại của tôi là:
Nó không có bất kỳ đường dẫn hoặc tham số tập lệnh nào.
Khi tôi nhấp vào nút màu xanh lá cây "Gỡ lỗi", lệnh tự động khởi chạy là: /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
Còn bạn thì sao ?
Xin chào, tôi đang viết câu trả lời này vì tôi không thể bình luận vì danh tiếng của tôi không có. Có phải bạn đã cài đặt bộ công cụ gỡ lỗi cython mà pycharm liên tục đề xuất không? Nếu vậy, tôi đã phải đối mặt với cùng một vấn đề. Giải pháp là xóa tăng tốc cython bằng cách nào đó. Bạn có thể theo liên kết này để làm điều đó.
Về cơ bản, bạn phải vào thư mục được gọi _pydevd_bundlevà xóa pydev*.socác tập tin. Bây giờ yêu cầu đặc quyền root. Nếu bạn có điều đó và bạn có thể xóa chúng, thì rất có thể nó sẽ hoạt động (miễn là bạn đã cài đặt tiện ích mở rộng trình gỡ lỗi cython).