Pycharm как посмотреть процесс выполнения программы
Перейти к содержимому

Pycharm как посмотреть процесс выполнения программы

  • автор:

пошаговая отладка в PyCharm

Как запустить пошаговый отладчик? Он вроде как встроенный, но при запуске Debugger, он просто запускает код, и нет пошаговости. Нет вывода значения переменных именно в этот момент выполнения кода.

Отслеживать
1,298 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 золотой знак 15 15 серебряных знаков 31 31 бронзовый знак

у меня проблема в том, что при отладке программы я не могу ничего ввести. по ходу программы пользователь вводит данные, я же в процессе отладки ничего не могу ввести

30 мар 2017 в 19:40
@allay, при пошаговом выполнении код с вводом игнорируется?
31 мар 2017 в 14:59

Не знаю в какой ОС Вы работаете, но, к сожалению, с отладкой в PyCharm есть ряд особенностей.

При пошаговом выполнении в *nix системах (в частности, я говорю про Ubuntu 16.04, но думаю, что подобные фокусы есть и в других операционках) возникает проблема с горяими клавишами. Проблема заключается в том, что невозможно использовать их на любой другой раскладке, кроме EN . Среда не реагирует. Связано это с тем, что в списке горячих клавиш ( File -> Settings необходимо выбрать раздел Keymap ) отсутствуют русские комбинации клавиш.

Keymap

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

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. Спасибо ребятам, они молодцы.

Как настроить удаленную отладку?

  1. Убедиться, что у вас PyCharm Professional Edition 🙂
  2. Настроить Remote Debugger в PyCharm.
  3. Убедиться что до вас можно достучаться по сети оттуда, где запускается python код. Можно, например, запустить локально netcat-сервер (“netcat -l”), а на хосте с кодом попытаться к этому порту подключиться netcat-клиентом. Если конфигурация сети сложная, всегда можно пробросить порт по SSH.
  4. Установить на сервер pip-пакет pydevd_pycharm.
  5. Добавить вызов отладчика в нужное место в коде.
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 – он бесплатен!

Как настроить удаленную отладку?

  1. Настроить удаленную отладку в VisualStudio Code.
  2. Убедиться, что ваш ПК может обратиться к порту, открытом на хосте где запускается код. Как и в случае с PyCharm можно пробросить порт по SSH, но использовать нужно не remote port forwarding метод, а local port forwarding, т.к. соединение произойдет из VSCode в Python.
  3. Установить pip-пакет ptvsd.
  4. Добавить в отлаживаемый участок кода (например, в вызов какой-либо функции) вызов отладчика.
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 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 , в котором описано, что надо сделать, чтобы установить и запустить среду разработки.

Установочный пакет PyCharm

Процесс может выглядеть следующим образом:

    Перемещаем каталог с файлами среды разработки в директорию /opt командой

sudo mv pycharm-community-2022.3.3/ /opt/
cd /opt/pycharm-community-2022.3.3/bin/
./pycharm.sh

При первом запуске PyCharm будет предложено принять пользовательское соглашение, также появится окно с вопросом отправлять или нет анонимные данные о том, как вы используете продукт.

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

Приветственное окно PyCharm

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

Создание проекта и настройка виртуального окружения

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

Настройка интерпретатора

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

Окно создания простого проекта в PyCharm

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

Открытый в PyCharm проект

Окно Tip of the Day и сообщение Code With Me следует закрыть, если они появятся. Возможно потребуется подождать, пока среда настроит проект. Сообщение об этом вы увидите в строке состояния.

Слева на панели Project управляют файлами проекта. На скрине выше в каталоге pythonProject нет ни одного файла. Чтобы создать файл, в котором будет написана программа на Python, кликнем по этой папке правой кнопкой мыши. В контекстном меню выбираем New → Python File .

Создание файла в PyCharm

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

Указание имени и типа файла

Нажав Enter , вы увидите файл на панели Project . Также он будет открыт в центральной части окна PyCharm.

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

Запуск программы в PyCharm, панель Run

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

Как изменить положение панели в PyCharm

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

Панель выполнения программы справа

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

Изменение темы оформления в PyCharm

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

Включение в PyCharm возможности менять размер шрифта прокруткой колеса мыши с зажатым Ctrl

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

Установка размера шрифта в редакторе кода PyCharm

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

Python Console

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

Создание значка быстрого запуска для PyCharm в системном меню

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

Пример ярлыка запуска PyCharm

Теперь рассмотрим некоторые особенности работы в PyCharm, точнее в его редакторе кода. Многие из них универсальны, характерны для других сред разработки. Так нажатие Ctrl + D дублирует строку, в которой находится курсор.

Ctrl + C копирует строку, в которой находится курсор, выделять строку при этом не надо. Потом копию можно вставить в любое место программы командой Ctrl + V .

Если надо скопировать или продублировать участок в несколько строк, его следует выделить.

Выделенный участок можно сдвинуть вправо (сделать вложенным), нажав Tab . Смещение влево (на внешний уровень) выполняется комбинацией Shift + Tab .

Поднять/опустить (поменять местами с предшествующей/нижестоящей) строку или выделенный участок можно с помощью сочетаний Shift + Ctrl + стрелка вверх или стрелка вниз клавиатуры.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Pycharm – отладка и точки останова

Запуск кода Python состоит из двух режимов: запуск сценария и отладка сценария. Эта глава посвящена отладке скрипта Python с использованием PyCharm.

Вовлеченные шаги

Шаги для отладки проекта Python описаны ниже:

Шаг 1

Начните с отладки проекта Python, как показано на скриншоте ниже –

Отладка Демо

Шаг 2

Теперь брандмауэр Windows запрашивает разрешение на отладку проекта Python, поскольку процедура включает построчную компиляцию.

Безопасность Windows

Шаг 3

Консоль отладки создается в редакторе PyCharm, как показано ниже, который выполняет вывод построчно.

Консоль отладки

Кнопка запуска перемещается от одной строки к другой, чтобы выполнить вывод так, как мы хотим.

Кнопка запуска

Понимание точек останова

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

Понимание точек останова

В PyCharm точки останова отображаются с помощью отдельного диалога в указанном редакторе. Он включает в себя различные атрибуты для оценки определенных точек останова и журнал трассировки для них с основным мотивом для достижения лучшей практики программирования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *