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

Интерактивная отладка оболочки с помощью pycharm

Я новичок в PyCharm. Я давно использую IDLE.

Очень удобно использовать объекты Python после выполнения script в IDLE. Можно ли использовать объекты script после его выполнения с помощью интерактивной оболочки python с помощью PyCharm?

Например, у нас есть проект "test" с одним файлом "test.py":

a = '123'
print a

после выполнения мы можем получить результат:

123
Process finished with exit code 0

Как я могу использовать строку 'a' с интерактивной оболочкой?

4b9b3361

Ответ 1

Встроенная оболочка Python для текущей сессии отладки

  1. Установите точку останова на интересующей вас строке в вашем коде (например, щелкнув по желобу) и запустите отладку (щелкните правой кнопкой мыши в редакторе, затем выберите " Отладка myfile.py...").
  2. Когда точка останова достигнута, перейдите на вкладку "Отладка"> "Консоль" и щелкните значок " Показать командную строку" (см. Снимок экрана).

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

В последних версиях pycharm вы получаете полный интерпретатор ipython вместо простой оболочки python (если установлен ipython).

Enabling Python shell for the debugged app

Окно оценки выражения

В качестве более удобной альтернативы, если вам нужно только проверить некоторые переменные, получить доступ к членам или вызвать методы объекта в области, после достижения точки останова выберите выражение в текущей области, щелкните правой кнопкой мыши → Оценить выражение (или используйте горячая клавиша, показанная в меню в RunEvaluate Expression...), при необходимости отредактируйте - вы можете ввести любое выражение python с доступным автозаполнением - и затем нажать Enter (или нажать Evaluate), чтобы проверить результат.

Поддерживаются многострочные и многострочные выражения: чтобы получить многострочную версию диалога Inspect, выберите режим фрагмента кода или выберите более одной строки кода в редакторе, а затем оцените выражение. Вы можете присваивать значения существующим переменным (новые не могут быть определены) и запускать целые куски кода. inspecting variables in the current scope

Наведите курсор мыши на переменные

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

enter image description here

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

enter image description here

Для переменных в области видимости инспектор показан на нижней панели в разделе "Отладка"> "Отладчик".

Для фреймов данных pandas вы увидите ссылку " Просмотреть как DataFrame" на панели инспектора переменных или всплывающее окно - при щелчке по ссылке фрейм данных отобразится в виде таблицы на панели "Просмотр данных".

Ответ 2

Я нашел предыдущие ответы от Piga-fetta, Games Brainiac и kobejohn полезным, но не удовлетворяющим. Поэтому я предлагаю третий вариант:

Загрузка выбранного кода в консоль (мое предложение)

Используйте Shift + Alt + E для загрузки выбранного кода или строки, в которой курсор помещается в консоль и сразу же запускает ее. Это также имеет некоторые недостатки:

  • Вам нужно выбрать весь файл, если вам нужно запустить весь файл.
  • Код продолжает работать, даже если он обнаруживает ошибку.

Но взамен мы получаем функцию, которая лучше, чем IDLE (на мой взгляд): Возможность запуска кода по одному выбору за раз.

Прочитайте об этом здесь.

Использование точек останова и оценки выражения (Alt - F8) (предложенный Piga-fetta)

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

Использование инструментов → Запустить консоль Python (предлагается Games Brainiac и kobejohn)

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

Ответ 3

Вы можете просто использовать консоль Python внутри PyCharm 2 и PyCharm 3. И вы можете просто импортировать, так как ваш корневой каталог проекта уже добавлен в ваш PYTHONPATH:

Итак, позвольте мне продемонстрировать некоторые снимки экрана:

1. Создание файла console.py в корневом каталоге

enter image description here

2. Открытие консоли Python внутри PyCharm

enter image description here

3. Импортировать переменную из console.py файла

enter image description here

И там вы успешно импортировали свою переменную.

Ответ 4

Оставьте командную строку открытой после выполнения

Для тех, у кого все еще есть эта проблема: зайдите в меню Run/Debug, выберите Edit Configuration, установите флажок "Показать командную строку", это позволит вам ввести параметры в консоли в приглашении >>> и протестировать вашу функцию.

Change setting for current file only

Глобальная конфигурация

Чтобы применить это изменение ко всем вашим файлам .py (так как этот флажок применяется только к текущему файлу, над которым вы работаете), перейдите к: Изменить конфигурацию, во всплывающем окне вы увидите дерево меню слева, выберите По умолчанию, затем Python, затем установите флажок "Показать командную строку", это сделает его настройкой по умолчанию при каждом открытии файла .py (эта функция действительно должна быть включена по умолчанию!)

Change setting for all Python files

Ответ 5

Я нашел лучший ответ в: Взаимодействие с программой после выполнения

Цитируя ответ ниже:

+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++

Из вывода python --help:

-i: проверить интерактивно после запуска script; принудительно запускает, даже если stdin не является терминалом; также PYTHONINSPECT = x

Чтобы установить опцию интерпретатора в PyCharm, перейдите в меню "Выполнить" → "Изменить конфигурацию"

+++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++

Я попробовал, и он работает - просто используйте "-i" (без кавычек) как "Параметры интерпретатора". Обратите внимание, что если вы изменяете настройки по умолчанию в конфигурациях "Запуск/отладка", это может не сразу сказаться на сценариях, которые вы уже запускали раньше; вам нужно будет отредактировать конфигурации этих сценариев один за другим.

Ответ 6

Не указано выше:

Если вы хотите использовать переменную во время выполнения, например. когда вы устанавливаете точку останова, а затем экспериментируете с функциями вызова для объектов в текущей области, PyCharm имеет всплывающее окно Выразить выражение (Alt-F8).

В этом окне вы можете вызывать функции и видеть вывод. Выполнение кода также работает. В этом окне также есть "режим фрагмента кода", я просто изучаю, что это значит - можете ли вы определить здесь временные функции?

(Я использую PyCharm 3.0.1 Community Edition)

Ответ 7

* обновление

Из вашего обновления, я думаю, этот вопрос SO предоставляет хотя бы один идеальный ответ.

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

  • Инструменты → Запустить консоль Python
  • импортируйте script import myscript (без .py) (если вы хотите короткое имя, используйте import myscript as m
  • (вам может потребоваться запустить main(), если у вас есть блок if __name__ == '__main__')
  • как в вашем вопросе, a доступен в myscript.a
  • если вы хотите, запустите script снова с помощью myscript = reload(myscript)

* оригинал

В PyCharm 3.0 вы можете сделать следующее:

  • Инструменты → Запустить консоль Python
  • Инструменты → Открытый терминал (из которого вы можете запустить python или сделать что угодно)

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

Ответ 8

Другой альтернативой является просто использовать ту же самую команду, которую Spyder использует для "интерактивного" запуска script:

>>> runfile('myscript.py')

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

Ответ 9

В дополнение к предложению, которое я сделал в ответе Рэмкинса, вы можете запустить файл напрямую с консоли, щелкнув правой кнопкой мыши внутри файла и выбрав " Run File in Console.