Подтвердить что ты не робот

Отладка кода Python в Notepad ++

Я использую Notepad ++ для написания и запуска скриптов Python. Это отличный текстовый редактор, за исключением отладки. Есть ли способ выполнить код, использовать точки останова, просмотреть значения переменных и т.д. В Notepad ++, как вы можете в Visual Studio?

4b9b3361

Ответ 1

Есть ли такой плагин? Не то, что я знаю из. Я полностью согласен с qor72 на этой ноте.

Можно ли создать такой плагин/функциональность? Возможно.

После некоторого быстрого копания я нашел плагин, который выглядит многообещающим, Python Script. Короче говоря, он позволяет запускать скрипты python, которые могут обращаться к модулям NPP (меню файлов и т.д.), А также методы Scintilla, которые появляются, чтобы предоставить доступ к таким вещам, как маркеры на страницах.

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

  • Используя Python Script, интегрируйте отладчик python (PDB), как упоминалось в Shashi.
  • Используя методы Scintilla, добавьте обратные вызовы, где размещен маркер NPP.
  • Перенаправить PDB-выходы и обработать их, чтобы показать, где файл остановлен (снова используя методы Scintilla).
  • Пока на вновь созданной точке останова и использовании PDB определяют все переменные в текущем пространстве имен. Возьмите эту информацию и выгрузите ее в окно CMD, или если вы хотите получить фантастический графический интерфейс, созданный с помощью Tk/wxPython

Заключительные мысли
В то время как я думаю, что это возможно, чтобы создать такой плагин, я был бы довольно серьезным делом. Вдоль этой линии вам может быть лучше попытаться найти другой редактор, который уже встроен в него, и просто создавать макросы (или что-то там, где IDE их вызывает), чтобы добавить в то, что вам больше всего нравится в АЭС.

Обратите внимание, что я являюсь ежедневным пользователем АЭС и уже много лет, поэтому я вызывающе понимаю, почему вы хотели бы функционально добавить в АЭС. Одна из моих любимых вещей в отношении АЭС - это скорость, с которой она открывается, и поиск файлов... переход к раздутой IDE, ИМО, не стоил бы мне этого.

Мой текущий рабочий процесс - это сделать все мое редактирование на АЭС и просто дважды щелкнуть, чтобы запустить модули. Если он сорвался или исчез в сорняках, я запускаю IDLE для его отладки.

Ответ 2

Я действительно надеюсь, что кто-то скажет мне, что я ошибаюсь (я бы хотел использовать эту функцию в Notepad ++), но Notepad ++ разработан как редактор программистов, а не IDE. Хотя у этого есть много классных функций, этот уровень отладки не является частью основного инструмента.

Не вижу ничего в npp-plugins.

Ответ 3

Я думаю отладчик python это лучший вариант, если редактор не предоставляет средства:)

Краткое руководство:

from pdb import set_trace as bp

code
code
bp()
code
code

В приглашении (Pdb) введите s на шаг, p foo, чтобы напечатать foo и c, чтобы продолжить выполнение кода, пока не нажмете другую точку останова.

Ответ 4

Ты думал об использовании Комодо. Он с открытым исходным кодом и имеет порты для Windows, Linux и MAC (я думаю).

Это может быть альтернативой, и если вы хотите получить некоторые рекомендации от пользователей Notepad ++, посмотрите следующий пост на этом самом сайте:

Komodo Edit и Notepad ++: Плюсы и минусы: Python dev

Некоторые пользователи npp, похоже, создали переключатель для редактирования python и т.д.

лично не очень разбираюсь в отладке на Komodo, но поскольку это IDE, было бы удивительно, если бы вы не смогли сделать это легко.

Ответ 5

Я действительно не понимаю, почему ответ Shashi не был одобрен. По ссылке, которую он предоставил для поставки, можно выполнить скрипты python по запросу OP.

Итак, для всех, кто не знает о модуле pdb, при импорте функция pdb.set_trace() позволяет пройти через область кода после нее. И это очень похоже на метод отладки визуальных студий. Пока вы выполняете код, вы можете вводить различные команды.

Один из них - p <expression> и позволяет пользователю печатать текущее состояние переменных в локальной и глобальной области.