Искате ли да бъдете истински експерт по отстраняване на грешки в 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 за интерактивна обвивка. Тази поддръжка включва довършване на раздели, поддръжка на цветове и магически функции, наред с други функции за поддръжка.
Този дебъгер позволява достъп до 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 в променливите на средата.
Ще го инсталирате с помощта на:
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, той има ниски режийни разходи.
Освен това си струва да се има предвид, че използването на 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 и да коригирате всички потенциални грешки, като използвате тези програми за отстраняване на грешки, за да предотвратите изпълнението на кода си без срив.
Приятно отстраняване на грешки!