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

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

Очень удобно использовать объекты python после выполнения сценария в IDLE. Есть ли способ использовать объекты сценария после его выполнения с интерактивной оболочкой python с использованием pycharm?

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

a = '123' print a 

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

 123 Process finished with exit code 0 

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

8 Solutions collect form web for “интерактивная отладка оболочки с помощью pycharm”

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

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

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

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

Включение оболочки Python для отлаженного приложения

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

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

Поддерживаются множественные и многострочные выражения: для получения многострочной версии диалогового окна «Осмотр» щелкните режим фрагмента кода или выберите в редакторе несколько строк кода, а затем оцените выражение. Вы можете присваивать значения существующим переменным (новые вары не могут быть определены) и запускать целые куски кода. проверка переменных в текущей области

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

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

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

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

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

Читайте об этом здесь .

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

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

Использование Tools -> Run Python Console (предлагается Games Brainiac и kobejohn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы установить опцию интерпретатора в PyCharm, перейдите в Run | Edit Configuration

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

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

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

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

Изменить настройку только для текущего файла

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

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

Изменить настройку для всех файлов Python

Не упомянуто выше:

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

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

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

*Обновить

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

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

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

* оригинал

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

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

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

Еще одна альтернатива – просто использовать ту же самую команду, которую Spyder использует для «интерактивного» запуска скрипта:

>>> runfile('myscript.py')

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

  • Как остановить выполнение программы Python в IDLE
  • запуск Python IDLE из командной строки для редактирования скриптов
  • Преобразование JSON в CSV с использованием Python (Idle)
  • Использование IDLE для запуска модульных тестов Python PyUnit
  • настройка numpy / scipy в режиме ожидания
  • Ошибка запуска подпроцесса IDLE
  • Как писать и запускать более одного кода в Python IDLE?
  • Python - подпроцессы и оболочка python
  • Python - лучший язык программирования в мире.