пошаговая отладка в PyCharm
Как запустить пошаговый отладчик? Он вроде как встроенный, но при запуске Debugger, он просто запускает код, и нет пошаговости. Нет вывода значения переменных именно в этот момент выполнения кода.
Отслеживать
1,318 7 7 серебряных знаков 20 20 бронзовых знаков
задан 29 мар 2017 в 16:04
81 2 2 золотых знака 2 2 серебряных знака 3 3 бронзовых знака
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Поставьте точку останова на том месте, откуда хотите вести отладку:
Пусть есть такой код:
a = [1, 2, 3] b = 1.2 c = 11 d = input() print(a, b, c, d)
Когда вы пошагово дойдете до строки с вводом и выполните её, то у вас должна появится возможность ввести значение в вкладке Console :

Отслеживать
ответ дан 29 мар 2017 в 17:12
2,548 1 1 золотой знак 14 14 серебряных знаков 31 31 бронзовый знак
у меня проблема в том, что при отладке программы я не могу ничего ввести. по ходу программы пользователь вводит данные, я же в процессе отладки ничего не могу ввести
30 мар 2017 в 19:40
@allay, при пошаговом выполнении код с вводом игнорируется?
31 мар 2017 в 14:59
Не знаю в какой ОС Вы работаете, но, к сожалению, с отладкой в PyCharm есть ряд особенностей.
При пошаговом выполнении в *nix системах (в частности, я говорю про Ubuntu 16.04, но думаю, что подобные фокусы есть и в других операционках) возникает проблема с горяими клавишами. Проблема заключается в том, что невозможно использовать их на любой другой раскладке, кроме EN . Среда не реагирует. Связано это с тем, что в списке горячих клавиш ( File -> Settings необходимо выбрать раздел Keymap ) отсутствуют русские комбинации клавиш.

Эту проблему можно решить, если найти соответствующие команды (например, Run. ) и добавить соответствующие русские комбинации:


Такая же ситуация наблюдается и со средой IntelliJ Idea.
Под Windows проблема аналогичная. Но здесь, плюс к этому добавляется неработоспособность команды Step Into . При попытке войти в функцию вываливается ошибка с непонятными логами в виде цифр и букв в непонятных последовательностях. Аналогичная проблема возникает при попытке перейти на следующую строку на условных операторах, но это происходит не всегда. Случаи, когда такое случается, а когда нет, мной выявлены не были. Обойти это недоразуменее можно команду Resume Program , т.е. выполнить до точки останова. Таким образом, можно допрыгнуть до нужного места в коде, в т.ч. внутри функции. Но от такого рода отладки часто устаёшь. Поэтому призываю поставить виртуалку, либо непосредственно *nix систему.
Отладка на Python: способы и фишки
Отладка – один из важных этапов разработки ПО. Есть много определений этого термина: начиная от “процесса нахождения ошибок на этапе разработки и их устранения”, до “убеждения, что алгоритм исполнения программы соответствует ожиданиям”.
Процесс отладки неминуемо следует за кодированием. Крайне рекомендуется проходить отладчиком по всему коду хотя-бы один раз после кодирования, ведь даже в самом простом коде могут быть ошибки. А если код сложнее
def my_function(): pass
то пройти по нему отладчиком даже необходимо и жизненно важно.
На практике я использую отладку на самых разных уровнях: иногда, нужно найти причину вывода отличного от ожидаемого значения в XLS-отчёт, иногда, зайти на сборку в CI-сервере и найти причину упавшего теста, иногда понять почему отчёт в JS-интерфейсе отличается от значений в базе, а иногда найти причину ошибки в одной из системных библиотек.
Для всего этого есть свои инструменты. В браузере – встроенный отладчик и ключевое слово debugger, в системе – gdb, strace, в Python – свои инструменты. Давайте рассмотрим их.
pdb – стандартный отладчик для Python 2/3. Самый простой, но в то же время достаточно мощный чтобы справиться с любой задачей отладки.
Для того чтобы запустить отладчик, достаточно написать в коде
import pdb; pdb.set_trace()
IPython pdb
idpb – расширенный pdb для среды IPython. Поддерживает подсветку синтаксиса и автодополнение. Это, пожалуй, мой основной способ отладки в консоли.
Для того чтобы запустить отладчик, достаточно вызывать в коде
import ipdb; ipdb.set_trace()
PyCharm Remote Debug
Удаленная отладка более репрезентативна чем консольный pdb. Часто используя инструмент с более богатым интерфейсом можно разобраться в проблема быстрее.
Изначально remote debugger поставляемый с PyCharm развивался в пределах среды Eclipse PyDev. Поставляемый с PyCharm компонент pydevd – форк, развиваемый командой JetBrains. Спасибо ребятам, они молодцы.
Как настроить удаленную отладку?
- Убедиться, что у вас PyCharm Professional Edition 🙂
- Настроить Remote Debugger в PyCharm.
- Убедиться что до вас можно достучаться по сети оттуда, где запускается python код. Можно, например, запустить локально netcat-сервер (“netcat -l”), а на хосте с кодом попытаться к этому порту подключиться netcat-клиентом. Если конфигурация сети сложная, всегда можно пробросить порт по SSH.
- Установить на сервер pip-пакет pydevd_pycharm.
- Добавить вызов отладчика в нужное место в коде.
import pydevd_pycharm pydevd_pycharm.settrace('172.17.0.1', port=12345)
Когда Python выполнит этот код, произойдет следующее:
- выполнение программы остановится в этой точке;
- интерпретатор попытается соединиться с PyCharm, слушающим по адресу 172.17.0.1:12345 ;
- при успешном соединении PyCharm отобразит остановленный код.
Ключевой момент: Python-код соединяется с PyCharm-ом, а не наоборот.
VisualStudio Code – PTVSD
Удаленный отладчик VisualStudio Code – PTVSD – гораздо более новый продукт, чем отладчик встроенный в PyCharm. Еще год назад он болел детскими болезнями, наподобие невозможности настроить mapped paths. Однако сейчас, его вполне можно рекомендовать к ежедневному применению. Его большое преимущество перед отладчиком PyCharm – он бесплатен!
Как настроить удаленную отладку?
- Настроить удаленную отладку в VisualStudio Code.
- Убедиться, что ваш ПК может обратиться к порту, открытом на хосте где запускается код. Как и в случае с PyCharm можно пробросить порт по SSH, но использовать нужно не remote port forwarding метод, а local port forwarding, т.к. соединение произойдет из VSCode в Python.
- Установить pip-пакет ptvsd.
- Добавить в отлаживаемый участок кода (например, в вызов какой-либо функции) вызов отладчика.
import ptvsd ptvsd.enable_attach(address=('1.2.3.4', 3000)) ptvsd.wait_for_attach()
Ключевой момент: в отличии от PyCharm-отладчика, отладчик PTVSD сам инициирует сетевое соединение, а не ждет подключения к нему.
arm-отладчика, отладчик PTVSD сам инициирует сетевое соединение, а не ждет подключения к нему.
Заключение
Возможностей для отладки в Python более, чем достаточно и все они имеют свои преимущества и недостатки. Я пользуюсь ipdb и PyCharm + PyDevd в зависимости от ситуации.
- Если мне необходимо отладить код на dev или CI сервере, или нужно отладить код в чужой среде, то я выбираю ipdb, а при его отсутствии pdb. Еще одна причина использовать ipdb – отсутствие автоматической подгрузки дескрипторов.
- Если же мне необходимо полноценно видеть картину происходящего, иметь возможностью по-ходить по коду в среде разработки, то я выбираю отладчик PyCharm PyDevd.
Освойте отладчик PyCharm: пошаговое выполнение, отслеживание переменных и многое другое

TLDR Освоение инструмента отладчика в PyCharm необходимо для эффективной отладки и исправления ошибок в программах, поскольку он позволяет выполнять пошаговое выполнение, отслеживать переменные и выполнять немедленные вычисления, но новичкам следует знать о его ограничениях и правильном использовании.
Summarize any YouTube video Summarize any video by yourself
Install on Chrome
Ключевые выводы
Отладка — важный навык для программистов, поскольку большинство программ работают не чаще, чем на самом деле.
Инструмент отладчика в PyCharm может показывать эффекты функций и помогать в отладке сложного кода.
Использование отладчика в PyCharm позволяет программистам видеть стек вызовов и пошаговый процесс работы своей программы, что облегчает выявление и исправление ошибок.
Отладку в PyCharm можно упростить, используя функцию красной точки и включив параметр показывать возвращаемые значения.
Просмотреть больше Искусственный интеллект и дизайн.
Отмеченное временем резюме
Освоение инструмента отладчика в PyCharm важно для отладки и исправления ошибок в программах, поскольку это более эффективно, чем использование инструкций print, и может быть продемонстрировано с помощью функций, которые вызывают друг друга.
Убедитесь в правильности настроек отладчика, отладчик PyCharm может останавливать выполнение при исключениях без точек останова, помогает идентифицировать исключения и анализировать программу шаг за шагом с помощью проверки стека вызовов и переменных.
Использование отладчика в PyCharm помогает выявлять ошибки и их причины путем просмотра стеков вызовов и переменных с дополнительным преимуществом выполнения вычислений и вставки выражений.
Отладчик PyCharm — мощный инструмент для проверки кода и исправления ошибок, но не рекомендуется изменять переменные в больших программах, и он знает только переменные внутри текущей функции.
При использовании отладчика PyCharm изменения в коде требуют перезапуска, и новички должны понимать, что консоль — это отдельная вкладка.
Узнайте, как использовать отладчик в PyCharm и получить доступ к консоли для просмотра результатов и переменных, в том числе как увидеть возвращаемое значение функции и добавить опцию для отображения возвращаемого значения.
Отладчик PyCharm позволяет мгновенно вычислять и отслеживать переменные, что позволяет удобно восстанавливать выполнение программы и избегать потери важной информации.
Отладчик PyCharm позволяет выполнять пошаговое выполнение и отслеживать переменные, но изменения, внесенные во время отладки, требуют консольного ввода, а true loops пропускает циклы.
Summarize any video by yourself
PyCharm Community. Основы работы
PyCharm – это одна из наиболее удобных сред разработки на языке Python. Существует в двух версиях:
- PyCharm Community – свободно-распространяемая версия с открытым исходным кодом.
- PyCharm Professional – проприетарная платная версия с триальным периодом.
В версии Community вы сможете программировать в основном на Python, в Professional – также на смежных языках (веб-программирование), использовать множество фреймворков.
В данном уроке мы рассмотрим создание проекта в PyCharm Community, первоначальную настройку среды и некоторые особенности работы в ней. Полную документацию смотрите на сайте разработчика данной IDE.
PyCharm не содержит самого интерпретатора Python, поэтому последний уже должен быть установлен в системе. В дистрибутивах Linux обычно это так и есть: пакет интерпретатора Python устанавливается вместе с операционной системой. Пользователи Windows, если еще не сделали этого, могут скачать интерпретатор Питона с официального сайта: https://www.python.org/downloads/
В Linux, распаковав установочный пакет PyCharm, вы найдете в нем файл Install***.txt , в котором описано, что надо сделать, чтобы установить и запустить среду разработки.

Процесс может выглядеть следующим образом:
-
Перемещаем каталог с файлами среды разработки в директорию /opt командой
sudo mv pycharm-community-2022.3.3/ /opt/
cd /opt/pycharm-community-2022.3.3/bin/
./pycharm.sh
При первом запуске PyCharm будет предложено принять пользовательское соглашение, также появится окно с вопросом отправлять или нет анонимные данные о том, как вы используете продукт.
Далее появится приветственное окно, в котором среди прочего предлагается создать новый проект.

При создании проекта появляется диалоговое окно, в котором следует указать адрес нового каталога (или согласиться с заданным по-умолчанию), создавать ли для проекта собственное виртуальное окружение.

Если вы только учитесь языку Питона, во избежание большого количества непонятных файлов в каталоге проекта, может быть целесообразнее выбрать пункт Previously configured interpreter . После этого через список Interpreter: выбрать системный интерпретатор ( System Interpreter ), указав его адрес.

Вернувшись в предыдущее окно, снимем флажок Create a main.py welcome script .

Далее запустится среда разработки, в ней будет открыт только что созданный проект.

Окно Tip of the Day и сообщение Code With Me следует закрыть, если они появятся. Возможно потребуется подождать, пока среда настроит проект. Сообщение об этом вы увидите в строке состояния.
Слева на панели Project управляют файлами проекта. На скрине выше в каталоге pythonProject нет ни одного файла. Чтобы создать файл, в котором будет написана программа на Python, кликнем по этой папке правой кнопкой мыши. В контекстном меню выбираем New → Python File .

После этого в центральной части среды разработки появится небольшое окно, в которое вписываем имя файла.

Нажав Enter , вы увидите файл на панели Project . Также он будет открыт в центральной части окна PyCharm.
После того, как исходный код написан, чтобы первый раз запустить программу, проще всего нажать Ctrl+Shift+F10 . Внизу раскроется вкладка Run , в которой отобразиться результат выполнения.

Иногда удобнее, чтобы панель выполнения программы открывалась не снизу, а, например, справа. В этом случае в настройках панели (справа значок похожий на гайку) следует выбрать Move to → Right Top .

После этого интерфейс среды разработки примет такой вид:

Внешний вид среды и множество других ее свойств, поведение настраиваются в окне Settings (меню File → Settings ). На скрине ниже показано, как изменить темную тему оформления PyCharm на светлую.

Бывает удобно менять размер шрифта в редакторе кода, зажав Ctrl и прокручивая колесо мыши. Чтобы воспользоваться этой возможностью в PyCharm, надо установить соответствующий флажок в разделе Editor → General окна настроек.

Изменить по-умолчанию заданный размер шрифта можно в разделе Editor → Font .

В PyCharm встроена интерактивная консоль, в которой выполняют небольшие фрагменты кода без создания файлов.

В дистрибутивах Linux обычно значок PyCharm не устанавливается в системное меню. И для последующего запуска среды вам снова надо будет обращаться к файлу pycharm.sh . Однако вы можете создать ярлык на приложение выполнив команду Tools → Create Desktop Entry… .

После этого в вашем системном меню должен появиться значок быстрого запуска. На скрине ниже показано, как это выглядит в Linux Mint.

Теперь рассмотрим некоторые особенности работы в PyCharm, точнее в его редакторе кода. Многие из них универсальны, характерны для других сред разработки. Так нажатие Ctrl + D дублирует строку, в которой находится курсор.
Ctrl + C копирует строку, в которой находится курсор, выделять строку при этом не надо. Потом копию можно вставить в любое место программы командой Ctrl + V .
Если надо скопировать или продублировать участок в несколько строк, его следует выделить.
Выделенный участок можно сдвинуть вправо (сделать вложенным), нажав Tab . Смещение влево (на внешний уровень) выполняется комбинацией Shift + Tab .
Поднять/опустить (поменять местами с предшествующей/нижестоящей) строку или выделенный участок можно с помощью сочетаний Shift + Ctrl + стрелка вверх или стрелка вниз клавиатуры.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
