Примечание. Следующая статья поможет вам: Отлаживайте 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.
Отладка с помощью Ipdb
Библиотека требует установки с помощью команды pip ниже.
пип установить ipdb
Пример использования ipdb будет выглядеть так:
импортировать ipdb alpha_list = [‘a’, ‘b’, ‘c’]
список_фруктов = [‘orange’, ‘mango’, ‘kiwi’]
def nested_loop(): для fruit_list: print (fruit) ipdb.set_trace() для x в alpha_list: print(x), если __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
Панель инструментов отладки Django — популярный инструмент отладки в Django: платформе Python.
Этот настраиваемый набор панелей отображает информацию об отладке текущего запроса или ответа. При нажатии на панель инструментов отображаются дополнительные сведения о содержимом панели.
Этот инструмент тщательно проверяет среду разработки Django.
Следуйте инструкциям по установке и настройке здесь.
Библиотека Pyelftools
Библиотека pyelftools полностью построена на Python. Он разбирает и анализирует файлы ELF и отладочную информацию DWARF, и для его запуска требуется только Python.
Использовать Pyelftools легко, так как у него нет внешних библиотек. Кроме того, использовать pyelftools без установки довольно просто, поскольку для этого требуется просто настроить PYTHONPATH в переменных среды.
Вы установите его, используя:
pip установить pyelftools
Реализация pyelftools просто требует его импорта и вызова в вашей программе.
Инструмент отладки мороженого 🍦
Это еще один эффективный инструмент отладки для разработчиков Python.
Использование icecream, также ic(), дает много преимуществ по сравнению с print(), как показано ниже:
Прежде чем использовать этот пакет, установите его с помощью команды pip ниже:
пип установить мороженое
Хорошо, что вы можете использовать ic() во всех файлах, не обязательно импортируя его во все файлы, установив его с помощью install(). Более того, install() добавляет ic() во встроенный модуль. Все файлы, импортируемые интерпретатором, будут совместно использовать ic().
В свой первый корневой файл Python, который вы можете назвать x.py, добавьте ic() с помощью install().
from icecream import install install() from y import mult mult()
В файле y.py импортируется файл x.py, вызовите ic()
def mult(): z=8 ic(z)
Полученные результаты:
у ic| я : 8
Что делает ic() более эффективным, так это его способность проверять переданные ему переменные, включая себя, а затем печатать свои аргументы и значения аргументов, как в следующем примере.
из импорта мороженого ic def mult(x): return x * 4 ic(mult(100))
Выход:
ic| мульт(100): 400
Кроме того, вы можете вставить ic() в уже существующий код, так как он возвращает свои аргументы. Пример ниже возвращает ic| х: 12, затем ic| у: 48.
из импорта мороженого 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 установить py-шпион
Несмотря на то, что ваша программа Python обслуживает производственный трафик, вы все равно можете профилировать и отлаживать эту программу с помощью py-spy, что делает ее важным инструментом профилировщика Python.
Отладчик Viztracer
В качестве альтернативы вы можете использовать viztracer, инструмент отладки, для отслеживания и визуализации выполнения вашей программы Python. Это также инструмент профилирования с ведением журнала с низкими издержками.
Что делает viztracer эффективным инструментом отладки?
Вывод
Профилирование и отладка Python, как и профилирование программного обеспечения, является ключевым этапом разработки, требующим внимания. Этот шаг помогает исключить любые участки кода с ошибками, чтобы оптимизировать общую производительность кода.
Инструменты отладки, которые мы рассмотрели выше, являются эффективными инструментами, которые значительно облегчают работу разработчика Python.
Видя, что другие инструменты отладки работают более эффективно, чем cProfiler, вы можете, как настоящий герой, отлаживать свой код Python и исправлять любые потенциальные ошибки, используя эти отладчики, чтобы ваш код не работал без сбоев.
Удачной отладки!