Gỡ lỗi Python như một anh hùng với các Thư viện và Công cụ này

Spread the love

Bạn có muốn trở thành một chuyên gia gỡ lỗi Python thực sự không? Gỡ lỗi mã Python của bạn bằng cách sử dụng các công cụ và thư viện gỡ lỗi Python tuyệt vời này mà chúng tôi sẽ sớm đề cập đến!

Python là một ngôn ngữ lập trình có mục đích chung, cấp cao và hướng đối tượng được sử dụng cho nhiều mục đích phát triển. Hơn nữa, nó còn là một công cụ phát triển hiệu quả cho các ứng dụng khác nhau, từ phát triển ứng dụng web cho đến quét web và các ứng dụng phức tạp hơn như Học máy và Khoa học dữ liệu.

Trong quá trình phát triển, các lỗi được gọi là lỗi trong lập trình rất dễ xảy ra. Các nhà phát triển thực hiện một số bước để phát hiện và loại bỏ các lỗi hiện có và tiềm ẩn khỏi mã. Do đó, bạn ngăn không cho mã chương trình bị nghiền nát. Chúng tôi gọi quá trình này là gỡ lỗi.

Bài viết này sẽ xem xét một số trình gỡ rối Python có sẵn mà bạn có thể sử dụng. Chúng tôi cũng sẽ xem các trình gỡ lỗi này khác nhau như thế nào và điều gì làm cho việc triển khai chúng hiệu quả.

thư viện gỡ lỗi cProfiler

cProfiler, là một thư viện phổ biến và là một phần mở rộng C thực thi việc biên dịch mã chạy lâu dài. Về lâu dài, nó xác định các phần của mã chương trình cần nhiều thời gian để chạy. Mặc dù nó xác định thời gian chính xác cần thiết để chạy các phần khác nhau của mã, nó không hoàn toàn xác định cũng như sửa lỗi trong mã.

Do đó, nhu cầu sử dụng các trình gỡ rối khác phát sinh.

May mắn thay, bạn có thể sử dụng các thư viện được đề xuất như ipdb, Django-debug-toolbar, pyelftools, viztracer và py-spy làm công cụ gỡ lỗi cho mã Python của bạn.

Công cụ gỡ lỗi ipdb

Trình gỡ lỗi Python hỗ trợ IPython đầy đủ là trình gỡ lỗi bên thứ ba tương tác có chứa pdbchức năng của. Ipbd cũng như hỗ trợ IPython shell tương tác. Hỗ trợ như vậy bao gồm hoàn thành tab, hỗ trợ màu sắc và các chức năng ma thuật, trong số các tính năng hỗ trợ khác.

Trình gỡ lỗi này cho phép truy cập vào trình gỡ lỗi IPython bằng cách xuất các chức năng có liên quan. Nó cũng cung cấp một giao diện tương tự để xem xét nội quan tốt hơn, giống như trong mô-đun pdb.

  Cách thêm dấu gạch ngang hoặc nét chấm vào hình dạng & đường dẫn trong Photoshop

Gỡ lỗi bằng Ipdb

Thư viện yêu cầu cài đặt bằng lệnh pip bên dưới.

pip install ipdb

Ví dụ về việc sử dụng ipdb sẽ như thế này:

import ipdb
alpha_list = ['a', 'b', 'c']
fruit_list = ['orange', 'mango', 'kiwi']

def nested_loop():
    for fruit_list:
        print (fruit)
        ipdb.set_trace()
    for x in alpha_list:
        print(x)
if __name__ == '__main__':
    nested_loop()

Chạy tệp python bằng lệnh bên dưới, trong đó test.py là tên tệp của tôi:

python -m ipdb test.py

Nhập ipdb và chạy hàm ipdb.set_trace () cho phép bắt đầu chương trình và chạy trình gỡ lỗi trong quá trình thực thi.

Hàm ipdb.pm () (post-mortem) hoạt động tương tự như hàm phép thuật% debug.

đối số set_trace

Chuyển ngữ cảnh làm đối số cho set_trace để hiển thị một số dòng mã được xác định. Ngoài ra, cond, mà set_trace cũng chấp nhận làm đối số, chấp nhận các giá trị Boolean và khởi động giao diện ipdb khi bạn đặt cond thành true.

Sử dụng tệp cấu hình

Đặt đối số ngữ cảnh với tệp idpdb hoặc tệp setup.cfg có sẵn trong thư mục chính và thư mục dự án, tương ứng. Bạn có thể kiểm tra thêm chức năng của ipdb.

Thanh công cụ gỡ lỗi Django

Các Thanh công cụ gỡ lỗi Django là một công cụ gỡ lỗi phổ biến trong Django: một khuôn khổ Python.

Bộ bảng có thể định cấu hình này hiển thị thông tin gỡ lỗi của yêu cầu hoặc phản hồi hiện tại. Khi bạn nhấp vào thanh công cụ, các chi tiết khác về nội dung của bảng điều khiển sẽ được hiển thị.

Công cụ này kiểm tra kỹ lưỡng môi trường phát triển Django.

Làm theo quy trình cài đặt và hướng dẫn cấu hình nơi đây.

Thư viện Pyelftools

Các pyelftools thư viện hoàn toàn được xây dựng trên Python. Nó phân tích cú pháp và phân tích các tệp ELF và thông tin gỡ lỗi DWARF và nó chỉ yêu cầu Python để chạy.

Sử dụng Pyelftools rất dễ dàng vì nó không có thư viện bên ngoài. Ngoài ra, việc sử dụng pyelftools mà không cần cài đặt khá dễ dàng vì nó chỉ yêu cầu điều chỉnh PYTHONPATH trong các biến môi trường.

Bạn sẽ cài đặt nó bằng cách sử dụng:

pip install pyelftools 

Việc triển khai pyelftools chỉ cần nhập nó và gọi nó vào chương trình của bạn.

Công cụ gỡ lỗi icecream 🍦

Đây là một công cụ gỡ lỗi hiệu quả khác dành cho các nhà phát triển Python.

Sử dụng kemcũng là ic (), đi kèm với nhiều lợi ích so với print (), như được nêu bên dưới:

  • Gõ nó tương đối nhanh hơn, theo nghĩa đen.
  • Nó in cấu trúc dữ liệu khá tốt.
  • In biểu thức hoặc tên biến và giá trị của chúng bằng ic ().
  • Nó làm nổi bật cú pháp của đầu ra.
  • Theo tùy chọn, nó bao gồm ngữ cảnh chương trình, bao gồm tên tệp, số dòng và hàm mẹ.
  Phần mềm cơ sở và phần mềm: Điểm giống và khác nhau

Trước khi sử dụng gói này, hãy cài đặt nó bằng lệnh pip bên dưới:

pip install icecream

Điều tốt là bạn có thể tận dụng ic () trong tất cả các tệp mà không nhất thiết phải nhập nó vào tất cả các tệp bằng cách cài đặt nó bằng install (). Hơn nữa, install () thêm ic () vào mô-đun nội trang. Tất cả các tệp mà trình thông dịch nhập sẽ dùng chung ic ().

Trong tệp python gốc đầu tiên của bạn, mà bạn có thể đặt tên x.py, hãy thêm ic () bằng cách sử dụng install ().

from icecream import install
install()
from y import mult
mult()
 

Trong y.py fil tệp x.py đang nhập, hãy gọi ic ()

def mult():
    z=8
    ic(z)

Kết quả:

y
ic| z : 8

Điều làm cho ic () hiệu quả hơn là khả năng kiểm tra các biến được truyền cho nó, bao gồm cả chính nó, sau đó in các đối số của nó và các giá trị đối số như trong ví dụ sau.

from icecream import ic
def mult(x):
    return x * 4
ic(mult(100))

Đầu ra:

ic| mult(100): 400

Hơn nữa, bạn có thể chèn ic () vào mã có sẵn vì nó trả về các đối số của nó. Ví dụ dưới đây trả về ic | x: 12 thì ic | y: 48.

from icecream import ic
x = 12
def mult(x):
    return x*4
    y = mult(ic(x))
    ic(y)

Gỡ lỗi bằng công cụ py-spy

Bạn có thể dùng gián điệp py để lập hồ sơ mẫu cho các chương trình Python như một công cụ gỡ lỗi. Không cần khởi động lại chương trình hoặc sửa đổi mã của nó, py-spy sẽ trực quan hóa quá trình thực thi của chương trình Python. Hơn nữa, vì nó được viết bằng Rust nên nó có chi phí thấp.

Ngoài ra, cần cân nhắc rằng việc sử dụng py-spy chống lại mã Python sản xuất là an toàn vì nó chạy một quy trình khác với chương trình Python đã được định hình.

Giống như mọi công cụ trước đây mà chúng tôi đã thấy, bạn có thể sử dụng công cụ py-spy sau khi cài đặt nó.

pip install py-spy 

Mặc dù chương trình Python của bạn đang phục vụ lưu lượng truy cập sản xuất, bạn vẫn có thể lập hồ sơ và gỡ lỗi chương trình này bằng cách sử dụng py-spy, biến nó thành một công cụ biên dịch Python quan trọng.

Trình gỡ lỗi Viztracer

Ngoài ra, bạn có thể sử dụng viztracer, một công cụ gỡ lỗi, để theo dõi và trực quan hóa việc thực thi chương trình Python của bạn. Nó cũng là một công cụ lập hồ sơ với chi phí thấp ghi nhật ký.

  Cách sử dụng Animoji trên iPhone X, XS và XR

Những gì làm cho viztracer một công cụ gỡ lỗi hiệu quả?

  • Sử dụng nó khá dễ dàng và nó không phụ thuộc vào các gói bên ngoài để hoạt động.
  • Viztracer hoạt động trên tất cả các nền tảng Hệ điều hành: Windows, Linux hoặc macOS.
  • Giao diện người dùng mạnh mẽ của nó hiển thị rõ ràng dấu vết cấp GB.
  • Nó sử dụng RegEx để ghi lại các chức năng tùy ý và thông tin bổ sung như các biến và thuộc tính, Nâng cao ngoại lệ, Hoạt động của bộ thu gom rácv.v., mà không sửa đổi bất kỳ phần mã nào trong mã nguồn của bạn.
  • Điều làm cho viztracer trở thành một công cụ gỡ lỗi chi phí thấp là khả năng lọc ra dữ liệu bạn không yêu cầu trong chương trình của mình. Sau đó, nó giữ lại thông tin cũ trước khi kết xuất nhật ký ở định dạng JSON.
  • Bạn có thể sử dụng nó để chèn các sự kiện tùy chỉnh như sự kiện tức thìcác sự kiện biến đổiThời lượng sự kiện khi chương trình chạy. Bằng cách này, nó hoạt động giống như gỡ lỗi in, ngoại trừ viztracer cho bạn biết khi nào quá trình in xảy ra khi bạn theo dõi dữ liệu.

Sự kết luận

Cấu hình và gỡ lỗi Python cũng giống như cấu hình phần mềm là một bước quan trọng trong quá trình phát triển đòi hỏi sự chú ý. Bước này giúp loại trừ bất kỳ phần mã nào có lỗi để hiệu suất tổng thể của mã được tối ưu hóa.

Các công cụ gỡ lỗi mà chúng tôi đã đề cập ở trên là những công cụ hiệu quả giúp công việc của một nhà phát triển Python trở nên khá dễ dàng.

Nhận thấy rằng các công cụ gỡ lỗi khác hoạt động hiệu quả hơn cProfiler, bạn có thể, giống như một anh hùng thực sự, gỡ lỗi mã Python của mình và sửa mọi lỗi tiềm ẩn bằng cách sử dụng các trình gỡ lỗi này để ngăn mã của bạn chạy mà không bị lỗi.

Chúc bạn gỡ lỗi vui vẻ!

x