Отлаживать код Python, требующий ввода с консоли

#python #debugging #pycharm

#python #отладка #pycharm

Вопрос:

Как отлаживать код в PyCharm IDE, когда для этого требуется консольный ввод? Например, у меня есть фрагмент кода,

         # if the config  already exists prompt what to do
        if pc and not self.prompt.ask_yesno('project_ovverride'):
            self.prompt.say('setup_abort')
            return
  

введите описание изображения здесь

Это прерывает выделенную строку, и я не смог продолжить, поскольку не смог предоставить консольный ввод. На данный момент я его не комментирую, но, возможно, есть способ предоставить и требуемый ввод с консоли.

Спасибо.

Ответ №1:

Если вы просто хотите вводить через CLI во время отладки; вы могли бы просто использовать step into , как показано ниже. — Сначала включите «Запуск с консоли» в вашей конфигурации запуска.

  1. Измените tab на console в вашем отладчике.
  2. Нажимайте step into , пока не увидите вопрос в консоли.
  3. Введите свой ответ по мере необходимости.
  4. Нажмите на continue или любое другое действие из вашего отладчика по мере необходимости.

Если вы хотите выполнить отладку с помощью запуска скрипта в CLI , вы ищете что-то в строках pdb (Python Debugger). Вы можете прочитать больше здесь.

Пример:

my_example.py

 try:
    pdb_test = 1 / 0
except ZeroDivisionError:
    print('Argh stop it!')
  

Командная строка:

 (venv) $ python3 -m pdb my_example.py
> /my_example.py(1)<module>()
-> try:
(Pdb) s
> /my_example.py(2)<module>()
-> a = 1 / 0
(Pdb) s
ZeroDivisionError: division by zero
> /my_example.py(2)<module>()
-> a = 1 / 0
(Pdb) 
  

То, что показано выше, это просто то, что я использую s для командования pdb to step — в документации вы можете найти все команды, которые вы, возможно, захотите использовать, включая continue и так далее.

Комментарии:

1. Ваш ответ помогает мне. Спасибо.

Ответ №2:

Первоначально нам нужно установить Run with Python console в конфигурации запуска PyCharm IDE, а затем мы можем изменить окно отладчика на окно консоли во время отладки программного обеспечения. Я предоставил скриншоты, иллюстрирующие формулу,

введите описание изображения здесь

Теперь переключитесь с отладчика на консоль и введите желаемый ввод.

введите описание изображения здесь

Ответ №3:

Если вы используете Pycharm 2018.3 или выше, вы можете перенаправить свой ввод в файл. PS. Я не пробовал это, но это должно работать нормально. Задайте свой входной файл здесь

Комментарии:

1. Ваш ответ помогает мне. Спасибо.

2. @Arefe используйте это, если вы ожидаете несколько итераций отладки и исправления. Это действительно экономит время.