/
disciplina
/
stepik-python-debugging
Обзор
Документация
Войти
/
disciplina
/
stepik-python-debugging
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
lessons/module1/1.1/lesson3.step
18 строк
6 KB
Sergey
Вторая версия курса
27 янв 2026, 21:14
27 янв 2026, 21:14
79b9655
Код
Авторство
О чём код?
{ "block": { "name": "text", "text": "<h2>Краткий обзор инструментов отладки для Python</h2>\n\n<p>В экосистеме Python существует множество инструментов для отладки программ. Рассмотрим основные из них.</p>\n\n<h3>1. Встроенные инструменты</h3>\n\n<h4>pdb — Python Debugger</h4>\n<p><strong>pdb</strong> — это стандартный встроенный отладчик Python. Он основан на принципах работы отладчика gdb и позволяет проводить интерактивную отладку с установкой точек останова и пошаговым выполнением кода.</p>\n\n<p><strong>Основные возможности:</strong></p>\n<ul>\n<li>Установка breakpoint (точек останова)</li>\n<li>Пошаговое выполнение кода</li>\n<li>Просмотр и изменение переменных</li>\n<li>Анализ стека вызовов</li>\n</ul>\n\n<h3>2. Улучшенные интерактивные отладчики</h3>\n\n<h4>IPython с ipdb</h4>\n<p><strong>ipdb</strong> — это улучшенная версия pdb, которая использует IPython в качестве консоли. Предоставляет:</p>\n<ul>\n<li>Подсветку синтаксиса</li>\n<li>Автодополнение команд</li>\n<li>Динамическую интроспекцию объектов</li>\n<li>Более удобный интерфейс</li>\n</ul>\n\n<p><strong>Использование:</strong></p>\n<pre><code>import ipdb\nipdb.set_trace() # Установка точки останова</code></pre>\n\n<h4>Post-mortem режим</h4>\n<p>Позволяет запустить отладчик после возникновения исключения для анализа состояния программы в момент ошибки.</p>\n\n<h3>3. Интеграция с тестированием</h3>\n\n<h4>nose-ipdb</h4>\n<p>Автоматически запускает отладчик при падении тестов:</p>\n<pre><code>nosetests --ipdb # Запуск при ошибках\nnosetests --ipdb-failures # Запуск только при падении тестов</code></pre>\n\n<h3>4. Отладчики для веб-фреймворков</h3>\n\n<h4>Werkzeug</h4>\n<p>Предоставляет интерактивный отладчик в браузере для WSGI-приложений. Показывает трассировку исключений с возможностью выполнения Python-кода прямо в браузере.</p>\n\n<h4>django-pdb и django-extensions</h4>\n<p>Специализированные инструменты отладки для Django:</p>\n<ul>\n<li><strong>django-pdb</strong> — интеграция pdb с Django</li>\n<li><strong>django-extensions</strong> — команда <code>runserver_plus</code> интегрирует werkzeug-отладчик</li>\n</ul>\n\n<h3>5. Мониторинг production-ошибок</h3>\n\n<h4>Sentry</h4>\n<p>Система сбора и анализа ошибок в production-окружении. Захватывает:</p>\n<ul>\n<li>Полные трассировки исключений</li>\n<li>Значения локальных переменных</li>\n<li>Контекст выполнения</li>\n<li>Статистику по ошибкам</li>\n</ul>\n\n<h3>6. GUI-отладчики</h3>\n\n<h4>PuDB</h4>\n<p>Текстовый отладчик с псевдографическим интерфейсом для терминала. Предоставляет визуальное представление кода, переменных и стека вызовов.</p>\n\n<h4>Winpdb</h4>\n<p>Графический отладчик с полноценным GUI-интерфейсом.</p>\n\n<h3>7. IDE-интегрированные отладчики</h3>\n\n<p>Современные IDE предоставляют встроенные визуальные отладчики:</p>\n<ul>\n<li><strong>PyCharm</strong> — мощный встроенный отладчик с графическим интерфейсом</li>\n<li><strong>Visual Studio Code</strong> — отладчик с поддержкой breakpoints и watch-выражений</li>\n<li><strong>Spyder</strong> — IDE для научных вычислений с интегрированным отладчиком</li>\n</ul>\n\n<h3>Выбор инструмента отладки</h3>\n\n<p><strong>Рекомендации по выбору:</strong></p>\n<ul>\n<li><strong>Для быстрой отладки</strong> — используйте <code>breakpoint()</code> или <code>ipdb</code></li>\n<li><strong>Для веб-приложений</strong> — werkzeug или специализированные инструменты фреймворка</li>\n<li><strong>Для сложных проектов</strong> — IDE-отладчики (PyCharm, VSCode)</li>\n<li><strong>Для production</strong> — Sentry или аналогичные системы мониторинга</li>\n<li><strong>Для анализа после ошибки</strong> — post-mortem режим pdb/ipdb</li>\n</ul>\n\n<p>В следующих уроках мы подробно изучим работу с pdb — основным инструментом отладки Python.</p>", "video": null, "options": {}, "subtitle_files": [], "is_deprecated": false, "source": {}, "subtitles": {}, "tests_archive": null, "feedback_correct": "", "feedback_wrong": "" }, "id": null, "has_review": false, "time": "2026-01-27T00:00:00.000Z" }