Адладжвайце Python як герой з дапамогай гэтых бібліятэк і інструментаў

Вы хочаце быць сапраўдным экспертам па адладцы Python? Адладжвайце свой код Python з дапамогай гэтых цудоўных інструментаў і бібліятэк для адладкі Python, якія мы хутка разгледзім!

Python – гэта агульнаўзроўневая аб’ектна-арыентаваная мова праграмавання агульнага прызначэння, якая выкарыстоўваецца ў многіх мэтах распрацоўкі. Больш за тое, гэта эфектыўны інструмент распрацоўкі для розных прыкладанняў, ад распрацоўкі вэб-прыкладанняў да вэб-скрабінгу і больш складаных прыкладанняў, такіх як машыннае навучанне і навука аб дадзеных.

Падчас распрацоўкі часта ўзнікаюць памылкі, якія называюцца багамі ў праграмаванні. Распрацоўшчыкі робяць некалькі крокаў, каб выявіць і ліквідаваць існуючыя і патэнцыйныя памылкі ў кодзе. У выніку вы прадухіляеце разбурэнне праграмнага кода. Мы называем гэты працэс адладкай.

У гэтым артыкуле будуць разгледжаны некалькі даступных адладчыкаў Python, якімі вы можаце карыстацца. Мы таксама ўбачым, наколькі гэтыя адладчыкі адрозніваюцца адзін ад аднаго і што робіць іх укараненне эфектыўным.

Бібліятэка адладкі cProfiler

cProfiler, гэта папулярная бібліятэка і пашырэнне C, якое выконвае прафіляванне доўгапрацуючага кода. У доўгатэрміновай перспектыве ён вызначае раздзелы праграмнага кода, выкананне якіх займае шмат часу. Нягледзячы на ​​тое, што ён вызначае дакладны час, неабходны для выканання розных раздзелаў кода, ён цалкам не вызначае і не выпраўляе памылкі ў кодзе.

Такім чынам, узнікае неабходнасць выкарыстання іншых адладчыкаў.

На шчасце, замест гэтага вы можаце выкарыстоўваць рэкамендаваныя бібліятэкі, такія як ipdb, Django-debug-toolbar, pyelftools, viztracer і py-spy, у якасці інструментаў адладкі вашага кода Python.

Інструмент адладкі ipdb

Адладчык Python з падтрымкай IPython цалкам – гэта інтэрактыўны старонні адладчык, які змяшчае pdbфункцыянальнасць. Ipbd а таксама пастаўляецца з падтрымкай інтэрактыўнай абалонкі IPython. Такая падтрымка ўключае ў сябе завяршэнне табуляцыі, падтрымку колеру і магічныя функцыі, сярод іншых функцый падтрымкі.

Гэты адладчык дазваляе атрымаць доступ да адладчыка IPython шляхам экспарту адпаведных функцый. Ён таксама прапануе падобны інтэрфейс для лепшага самааналізу, як і ў модулі pdb.

Праверце гэта:  Як запомніць, дзе вы прыпаркаваліся з дапамогай Google Assistant

Адладка з дапамогай 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() (пасмяротна) дзейнічае падобна магічнай функцыі %debug.

аргументы set_trace

Перадайце кантэкст у якасці аргумента ў set_trace, каб паказаць некалькі вызначаных радкоў кода. Акрамя таго, cond, які set_trace таксама прымае ў якасці аргумента, прымае лагічныя значэнні і запускае інтэрфейс ipdb, калі вы задаеце cond значэнне true.

Выкарыстанне файла канфігурацыі

Задайце кантэкстны аргумент з дапамогай файла idpdb або файла setup.cfg, даступнага ў хатняй папцы і папцы праекта адпаведна. Вы можаце праверыць функцыянальнасць ipdb далей.

Панэль інструментаў Django Debug

The Панэль інструментаў адладкі Django гэта папулярны інструмент адладкі ў Django: структура Python.

Гэты наладжвальны набор панэляў адлюстроўвае інфармацыю пра адладку бягучага запыту або адказу. Калі вы націснеце панэль інструментаў, адлюструюцца больш падрабязныя змесціва панэлі.

Гэты інструмент старанна правярае асяроддзе распрацоўкі Django.

Выконвайце працэс усталёўкі і інструкцыі па канфігурацыі тут.

Бібліятэка Pyelftools

The pyelftools бібліятэка чыста пабудавана на Python. Ён разбірае і аналізуе файлы ELF і інфармацыю аб адладцы DWARF, і для працы патрабуецца толькі Python.

Выкарыстоўваць Pyelftools проста, бо ён не мае знешніх бібліятэк. Акрамя таго, выкарыстоўваць pyelftools без усталёўкі даволі проста, бо для гэтага патрабуецца проста наладзіць PYTHONPATH у зменных асяроддзя.

Вы ўсталюеце яго з дапамогай:

pip install pyelftools 

Рэалізацыя pyelftools патрабуе проста імпартаваць яго і выклікаць у вашай праграме.

Праверце гэта:  13 лепшых разумных акуляраў па знешнім выглядзе і функцыянальнасці

Інструмент адладкі icecream 🍦

Гэта яшчэ адзін эфектыўны інструмент адладкі для распрацоўшчыкаў Python.

Выкарыстоўваючы марозіватаксама ic(), мае шмат пераваг перад print(), як паказана ніжэй:

  • Набіраць яго адносна хутчэй, літаральна.
  • Ён даволі добра друкуе структуры дадзеных.
  • Друк выразаў або імёнаў зменных і іх значэнняў з дапамогай ic().
  • Ён падкрэслівае сінтаксіс вываду.
  • Дадаткова ён уключае кантэкст праграмы, уключаючы назву файла, нумар радка і бацькоўскую функцыю.

Перш чым выкарыстоўваць гэты пакет, усталюйце яго з дапамогай каманды pip ніжэй:

pip install icecream

Добра тое, што вы можаце выкарыстоўваць ic() ва ўсіх файлах, не абавязкова імпартуючы яго ва ўсе файлы, усталяваўшы яго з дапамогай install(). Акрамя таго, install() дадае ic() да ўбудаванага модуля. Усе файлы, імпартаваныя інтэрпрэтатарам, будуць сумесна выкарыстоўваць ic().

У ваш першы каранёвы файл 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| год: 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.

Праверце гэта:  12 лепшых ашыйнікаў для адсочвання хатніх жывёл, каб засцерагчы вашага пухнатага сябра

Адладчык Viztracer

Акрамя таго, вы можаце выкарыстоўваць viztracer, інструмент адладкі, каб прасачыць і візуалізаваць выкананне вашай праграмы Python. Гэта таксама інструмент для прафілявання з невялікімі накладнымі выдаткамі.

Што робіць візтрэсер эфектыўны інструмент адладкі?

  • Выкарыстоўваць яго даволі проста, і яго праца не залежыць ад знешніх пакетаў.
  • Viztracer працуе на ўсіх платформах аперацыйнай сістэмы: Windows, Linux або macOS.
  • Яго магутная інтэрфейсная частка плаўна адлюстроўвае трасіроўку на ўзроўні ГБ.
  • Ён выкарыстоўвае RegEx для рэгістрацыі адвольных функцый і дадатковай інфармацыі, напрыклад зменныя і атрыбуты, Паднятыя выключэнні, Аперацыі зборшчыка смеццяі г.д., не змяняючы раздзел кода ў вашым зыходным кодзе.
  • Тое, што робіць viztracer інструментам адладкі з нізкімі накладнымі выдаткамі, – гэта яго здольнасць адфільтроўваць дадзеныя, якія вам не патрэбны ў вашай праграме. Затым ён захоўвае старую інфармацыю перад скідам журнала ў фармаце JSON.
  • Вы можаце выкарыстоўваць яго для ўстаўкі карыстальніцкіх падзей, такіх як імгненная падзея, зменная падзеяі Працягласць падзеі як праграма працуе. Такім чынам, гэта працуе як адладка друку, за выключэннем таго, што viztracer паведамляе вам, калі адбываецца друк падчас адсочвання даных.

Заключэнне

Прафіляванне і адладка Python, як і прафіляванне праграмнага забеспячэння, з’яўляецца ключавым крокам у распрацоўцы, які патрабуе ўвагі. Гэты крок дапамагае выключыць любыя раздзелы кода з памылкамі, каб аптымізаваць агульную прадукцыйнасць кода.

Інструменты адладкі, якія мы разглядалі вышэй, з’яўляюцца эфектыўнымі інструментамі, якія палягчаюць працу распрацоўшчыка Python.

Бачачы, што іншыя інструменты адладкі працуюць больш эфектыўна, чым cProfiler, вы можаце, як сапраўдны герой, адладжваць свой код Python і выпраўляць любыя магчымыя памылкі з дапамогай гэтых адладчыкаў, каб ваш код не выконваўся без збояў.

Шчаслівай адладкі!