Налагоджуйте 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.

  Як виправити, що клавіші зі стрілками не працюють в Microsoft Excel

Налагодження за допомогою 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 Debug

The Панель інструментів налагодження Django це популярний інструмент налагодження в Django: фреймворк Python.

Цей набір панелей, який можна налаштувати, відображає інформацію про налагодження поточного запиту чи відповіді. Коли ви клацаєте панель інструментів, відображаються додаткові відомості про вміст панелі.

Цей інструмент ретельно перевіряє середовище розробки Django.

Дотримуйтеся процесу встановлення та інструкцій щодо конфігурації тут.

Бібліотека Pyelftools

The pyelftools бібліотека повністю побудована на Python. Він розбирає та аналізує файли ELF і інформацію про налагодження DWARF, і для роботи потрібен лише Python.

Користуватися Pyelftools легко, оскільки він не має зовнішніх бібліотек. Крім того, використання pyelftools без інсталяції досить просте, оскільки для цього просто потрібно налаштувати PYTHONPATH у змінних середовища.

Ви встановите його за допомогою:

pip install pyelftools 

Для реалізації pyelftools потрібно просто імпортувати його та викликати у вашій програмі.

  Як встановити Drupal на сервер Ubuntu

Інструмент налагодження 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-spy профілювати зразки для програм на 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.
  • Його потужний інтерфейс плавно рендерить трасування на рівні ГБ.
  • Він використовує RegEx для реєстрації довільних функцій і додаткової інформації, наприклад змінні та атрибути, Підняті винятки, Операції збирача сміттятощо, не змінюючи жодного розділу коду у вихідному коді.
  • Що робить viztracer інструментом для налагодження з низькими витратами, так це його здатність фільтрувати дані, які вам не потрібні у вашій програмі. Потім він зберігає стару інформацію перед тим, як створити дамп журналу у форматі JSON.
  • Ви можете використовувати його, щоб вставляти спеціальні події, наприклад миттєва подія, змінна подіяі Подія тривалості під час виконання програми. Таким чином, це працює як налагодження друку, за винятком того, що viztracer повідомляє вам, коли відбувається друк під час трасування даних.

Висновок

Профілювання та налагодження Python, як і профілювання програмного забезпечення, є ключовим кроком у розробці, який вимагає уваги. Цей крок допомагає виключити будь-які розділи коду з помилками, щоб оптимізувати загальну продуктивність коду.

Інструменти налагодження, які ми розглянули вище, є ефективними інструментами, які полегшують роботу розробника Python.

Побачивши, що інші інструменти налагодження працюють ефективніше, ніж cProfiler, ви можете, як справжній герой, налагодити свій код Python і виправити будь-які потенційні помилки за допомогою цих налагоджувачів, щоб запобігти запуску коду без збоїв.

Щасливого налагодження!