Tehnografi.com - Технологические новости, обзоры и советы
[adinserter block="67"]

Отлаживайте Python как герой с помощью этих библиотек и инструментов

Примечание. Следующая статья поможет вам: Отлаживайте 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(), как показано ниже:

  • Вводить его относительно быстрее, буквально.
  • Он довольно хорошо печатает структуры данных.
  • Напечатайте выражения или имена переменных и их значения с помощью ic().
  • Он выделяет синтаксис вывода.
  • При необходимости он включает контекст программы, включая имя файла, номер строки и родительскую функцию.
  • Прежде чем использовать этот пакет, установите его с помощью команды 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 эффективным инструментом отладки?

  • Использовать его довольно просто, и его работа не зависит от внешних пакетов.
  • Viztracer работает на всех платформах операционных систем: Windows, Linux или macOS.
  • Его мощный внешний интерфейс плавно отображает трассировку на уровне ГБ.
  • Он использует RegEx для регистрации произвольных функций и дополнительной информации, такой как переменные и атрибуты, сгенерированные исключения, операции сборщика мусора и т. д., без изменения какого-либо раздела кода в исходном коде.
  • Что делает viztracer инструментом отладки с низкими издержками, так это его способность отфильтровывать данные, которые вам не нужны в вашей программе. Затем он сохраняет старую информацию перед выводом журнала в формате JSON.
  • Вы можете использовать его для вставки пользовательских событий, таких как мгновенное событие, переменное событие и событие Duration, во время работы программы. Таким образом, он работает как отладка печати, за исключением того, что viztracer позволяет узнать, когда происходит печать, когда вы отслеживаете данные.
  • Вывод

    Профилирование и отладка Python, как и профилирование программного обеспечения, является ключевым этапом разработки, требующим внимания. Этот шаг помогает исключить любые участки кода с ошибками, чтобы оптимизировать общую производительность кода.

    Инструменты отладки, которые мы рассмотрели выше, являются эффективными инструментами, которые значительно облегчают работу разработчика Python.

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

    Удачной отладки!