Tôi muốn sử dụng khả năng nội suy của python để gỡ lỗi/phát triển, nhưng không thể tìm thấy công cụ thích hợp cho việc này.Cách tốt nhất để gỡ lỗi tương tác trong python là gì?
Tôi cần phải nhập vào trình bao (ví dụ IPython) tại vị trí cụ thể hoặc tại sự kiện cụ thể (như ngoại lệ), với người dân địa phương và hình cầu của vỏ được đặt thành khung hình.
My nhanh chóng Hack riêng để minh họa cho nó:
import inspect
from IPython.Shell import IPShellEmbed
def run_debug():
stack = inspect.stack()
frame = stack[1][0]
loc = frame.f_locals
glob = frame.f_globals
shell = IPShellEmbed()
shell(local_ns=loc, global_ns=glob)
Với theo run_debug() cuộc gọi từ 'breakpoint' hoặc thử/trừ. Nhưng, rõ ràng, điều này cần rất nhiều đánh bóng, đặc biệt để làm việc với các ứng dụng luồng đúng cách.
winpdb có điểm ngắt với bảng điều khiển, nhưng tôi không tìm thấy cách nào để nhanh chóng chạy vỏ python thích hợp từ nó và eval()/exec() không tiện dụng cho việc gỡ lỗi dài.
Cảm ơn, phiên bản Pro của họ thực sự có chức năng cần thiết và nó tạm dừng quá trình thực thi trước khi chạy vỏ, vì vậy luồng không phải là vấn đề. Khá buồn độc quyền của nó, nhưng có vẻ như trường hợp của nó nhận được những gì bạn đang trả tiền cho. –
Tôi đoán đó là một trong những lợi ích để tính phí - họ có thể đủ khả năng để thuê người và * trả * cho họ để giải quyết các vấn đề như vậy;) Tất nhiên nếu quá đắt tiền, bạn luôn có thể tìm kiếm một hội nghị trăn địa phương và đề nghị họ hỏi Cánh cho một số bản sao cho đi. Họ đã cho chúng tôi 3-4 mỗi năm mà chúng tôi đã hỏi, và mọi giao dịch khác mà tôi đã nghe với họ đều rất ấn tượng. –