Отстранявайте грешки в Python като герой с тези библиотеки и инструменти

Искате ли да бъдете истински експерт по отстраняване на грешки в Python? Отстранете грешки в кода си на Python, като използвате тези невероятни инструменти и библиотеки за отстраняване на грешки на Python, които скоро ще разгледаме!

Python е обектно-ориентиран език за програмиране с общо предназначение на високо ниво, използван за много цели за разработка. Освен това, той е ефективен инструмент за разработка на различни приложения, от разработка на уеб приложения до уеб скрапинг и по-сложни приложения като машинно обучение и Data Science.

По време на разработката са склонни да се появят грешки, наречени грешки в програмирането. Разработчиците предприемат няколко стъпки, за да открият и премахнат съществуващите и потенциални грешки от кода. В резултат на това предотвратявате смачкването на програмния код. Ние наричаме този процес отстраняване на грешки.

Тази статия ще разгледа няколко налични програми за отстраняване на грешки на Python, които можете да използвате. Ще видим също колко различни са тези дебъгери един от друг и какво прави тяхното внедряване ефективно.

cProfiler библиотека за отстраняване на грешки

cProfiler, е популярна библиотека и C разширение, което изпълнява профилиране на дълготраен код. В дългосрочен план той идентифицира секции от програмния код, които отнемат много време за изпълнение. Въпреки че идентифицира точното време, необходимо за изпълнение на различни части от кода, то не идентифицира изцяло, нито коригира грешки в кода.

Следователно възниква необходимостта от използване на други програми за отстраняване на грешки.

За щастие, вместо това можете да използвате препоръчани библиотеки като ipdb, Django-debug-toolbar, pyelftools, viztracer и py-spy като инструменти за отстраняване на грешки за вашия код на Python.

Инструментът за отстраняване на грешки в ipdb

Python Debugger с активиран IPython изцяло е интерактивен дебъгер на трета страна, който съдържа pdbфункционалност. Ipbd също така идва с поддръжка на IPython за интерактивна обвивка. Тази поддръжка включва довършване на раздели, поддръжка на цветове и магически функции, наред с други функции за поддръжка.

  Как да блокирате имейли в Gmail

Този дебъгер позволява достъп до IPython дебъгера чрез експортиране на съответните функции. Той също така предлага подобен интерфейс за по-добра интроспекция, точно както в pdb модула.

Отстраняване на грешки с Ipdb

Библиотеката изисква инсталиране с помощта на командата pip по-долу.

pip install ipdb

Пример за използване на ipdb ще изглежда така:

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()

Стартирайте файла на python, като използвате командата по-долу, където test.py е името на моя файл:

python -m ipdb test.py

Импортирането на ipdb и изпълнението на функцията ipdb.set_trace() позволява началото на програмата и стартира програмата за отстраняване на грешки през изпълнението.

Функцията ipdb.pm() (post-mortem) действа подобно на магическата функция %debug.

аргументи set_trace

Предайте контекста като аргумент на set_trace, за да покаже няколко дефинирани реда код. Освен това cond, който set_trace също приема като аргумент, приема булеви стойности и стартира интерфейса ipdb, когато зададете cond на true.

Използване на конфигурационен файл

Задайте контекстния аргумент с файл idpdb или файл setup.cfg, наличен съответно в началната папка и папката на проекта. Можете да проверите допълнително функционалността на ipdb.

Лента с инструменти за отстраняване на грешки на Django

The Лента с инструменти за отстраняване на грешки на Django е популярен инструмент за отстраняване на грешки в Django: рамка на Python.

Този конфигурируем набор от панели показва информация за отстраняване на грешки в текуща заявка или отговор. Когато щракнете върху лентата с инструменти, се показват повече подробности за съдържанието на панела.

Този инструмент обстойно инспектира средата за разработка на Django.

Следвайте инсталационния процес и инструкциите за конфигуриране тук.

Библиотека на Pyelftools

The pyelftools библиотеката е изцяло изградена върху Python. Той анализира и анализира ELF файлове и информация за отстраняване на грешки в DWARF и изисква само Python, за да работи.

Използването на Pyelftools е лесно, тъй като няма външни библиотеки. Освен това използването на pyelftools без инсталация е доста лесно, тъй като просто изисква коригиране на PYTHONPATH в променливите на средата.

  замени текстовия низ във файла [Guide]

Ще го инсталирате с помощта на:

pip install pyelftools 

Внедряването на pyelftools просто изисква импортирането му и извикването му във вашата програма.

Инструментът за отстраняване на грешки на сладолед 🍦

Това е друг ефективен инструмент за отстраняване на грешки за разработчиците на Python.

Използвайки сладоледсъщо ic(), идва с много предимства пред print(), както е посочено по-долу:

  • Писането е относително по-бързо, буквално.
  • Отпечатва структури от данни доста добре.
  • Отпечатайте изрази или имена на променливи и техните стойности с ic().
  • Той подчертава синтаксиса на изхода.
  • По желание включва контекста на програмата, включително името на файла, номера на реда и родителската функция.

Преди да използвате този пакет, инсталирайте го с помощта на командата pip по-долу:

pip install icecream

Хубавото е, че можете да използвате ic() във всички файлове, без непременно да го импортирате във всички файлове, като го инсталирате с помощта на install(). Освен това install() добавя ic() към вградения модул. Всички файлове, импортирани от интерпретатора, ще споделят ic().

Във вашия първи root python файл, който можете да наименувате x.py, добавете ic() с помощта на install().

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

В y.py fil файлът x.py се импортира, извикайте ic()

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

Резултати:

y
ic| z : 8

Това, което прави ic() по-ефективен, е способността му да проверява променливите, които му се предават, включително себе си, след което да отпечатва своите аргументи и стойностите на аргументите, както в следния пример.

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

Изход:

ic| mult(100): 400

Освен това можете да вмъкнете ic() в вече съществуващ код, тъй като той връща своите аргументи. Примерът по-долу връща ic| x: 12, след това ic| y: 48.

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

Отстраняване на грешки с помощта на инструмента py-spy

Можеш да използваш py-шпионин за профилиране на проби за програми на Python като инструмент за отстраняване на грешки. Без рестартиране на програмата или модифициране на нейния код, py-spy визуализира изпълнението на програмата Python. Освен това, тъй като е написан на Rust, той има ниски режийни разходи.

  Как да отложите имейли в Gmail

Освен това си струва да се има предвид, че използването на py-spy срещу код на производствения Python е безопасно, защото изпълнява различен процес от профилираната програма на Python.

Както всеки друг предишен инструмент, който сме виждали, можете да използвате инструмента py-spy, след като го инсталирате.

pip install py-spy 

Въпреки че вашата програма Python обслужва производствен трафик, вие все още можете да профилирате и отстранявате грешки в тази програма с помощта на py-spy, което я прави критичен инструмент за профилиране на Python.

Дебъгер на Viztracer

Като алтернатива можете да използвате viztracer, инструмент за отстраняване на грешки, за да проследите и визуализирате изпълнението на програмата на Python. Това също е инструмент за профилиране с ниско ниво на логване.

Какво прави viztracer ефективен инструмент за отстраняване на грешки?

  • Използването му е доста лесно и не зависи от външни пакети, за да работи.
  • Viztracer работи на всички платформи на операционната система: Windows, Linux или macOS.
  • Неговият мощен преден край плавно изобразява проследяване на ниво GB.
  • Той използва RegEx за регистриране на произволни функции и допълнителна информация като променливи и атрибути, Възникнали изключения, Операции на Garbage Collectorи т.н., без да модифицирате който и да е кодов раздел във вашия изходен код.
  • Това, което прави viztracer инструмент за отстраняване на грешки с ниски разходи, е способността му да филтрира данните, които не са ви необходими във вашата програма. След това запазва старата информация, преди да изхвърли регистрационния файл във формат JSON.
  • Можете да го използвате, за да вмъкнете персонализирани събития като мигновено събитиена променливо събитиеи Продължителност събитие докато програмата работи. По този начин той работи като отстраняване на грешки при печат, с изключение на това, че viztracer ви уведомява кога се извършва отпечатването, докато проследявате данни.

Заключение

Профилирането и отстраняването на грешки в Python точно като софтуерното профилиране е ключова стъпка в разработката, която изисква внимание. Тази стъпка помага да се изключат всички секции на код с грешки, така че цялостната производителност на кода да бъде оптимизирана.

Инструментите за отстраняване на грешки, които разгледахме по-горе, са ефективни инструменти, които правят работата на разработчика на Python доста лесна.

Виждайки, че другите инструменти за отстраняване на грешки работят по-ефективно от cProfiler, вие можете, като истински герой, да отстраните грешки в кода на Python и да коригирате всички потенциални грешки, като използвате тези програми за отстраняване на грешки, за да предотвратите изпълнението на кода си без срив.

Приятно отстраняване на грешки!