інтерактивна налагодження оболонки за допомогою pycharm


74

Я новачок у PyCharm. Я вже давно використовую IDLE.

Дуже зручно використовувати об’єкти Python після виконання сценарію в IDLE. Чи є спосіб використовувати об'єкти сценарію після його виконання з інтерактивною оболонкою python за допомогою PyCharm?

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

a = '123'
print a

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

123
Process finished with exit code 0

Як я можу використовувати рядок 'a' з інтерактивною оболонкою?


2
можливий дублікат запуску модуля з консолі pycharm
Piotr

Відповіді:


115

Вбудована оболонка python для поточного сеансу налагодження

  1. Встановіть точку зупинки на лінії, що цікавить ваш код (тобто, клацнувши по жолобу), і запустіть налагодження (клацніть правою кнопкою миші в редакторі, а потім виберіть Налагодження myfile.py ... ).
  2. Коли точка перерви досягнута, знайдіть вкладку Налагодження > Консоль , а потім натисніть значок Показати в командному рядку (див. Знімок екрана).

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

В останніх версіях pycharm ви отримуєте повний інтерпретатор ipython замість простої оболонки python (якщо встановлений ipython).

Увімкнення оболонки Python для налагодженої програми

Оцінка експресії вікно

Як більш зручну альтернативу, якщо вам потрібно лише перевірити деякі змінні, отримати доступ до елементів або методів виклику об’єкта в області, як тільки досягнуто точки зупинку, виберіть вираз у поточній області, клацніть правою кнопкою миші -> Оцінити вираз (або скористайтеся гарячу клавішу, показану в меню під RunEvaluate Expression...), відредагуйте за потребою - ви можете ввести будь-який вираз python з можливістю автоматичного заповнення - а потім натиснути Enter (або клацнути Оцінити ), щоб перевірити результат.

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

Наведення курсору миші на змінні

Щоб побачити значення змінної після того, як ви потрапили в точку зупинки в режимі налагодження, наведіть вказівник миші на змінну (1-2 секунди), і значення буде показано в підказці.

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

Підказка міститиме піктограму - натискання на неї відкриє інспектор у спливаючому вікні.

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

Для змінних в області дії інспектор відображається на нижній панелі в розділі Налагодження > Налагоджувач .

Для pandasфреймів даних ви побачите посилання Переглянути як DataFrame на панелі інспектора змінних або у спливаючому вікні наведення курсору - клацання на посилання відображатиме фрейм даних як таблицю на панелі Data View .

Оновлення

В останніх версіях Pycharm (2019+) піктограма інтерпретатора тепер виглядає інакше:

піктограма перекладача pycharm

Також в інтерфейсі налагодження unittest / pytest значок розміщується першим на панелі значків.


"Показати командний рядок" - це функція, яку Ви навіть можете прив'язати до комбінації клавіш.
Хартмут П.

2
Переключення вкладок з налагоджувача на консоль можна здійснити за допомогою Alt-Left або Alt-Right
Hartmut P.

Гм, так, це повністю відповідь
Беллкев

20

Я знайшов попередні відповіді від Piga-fetta, Games Brainiac та kobejohn корисними, але не задовольняючими . Отже, я пропоную тут третій варіант:

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

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

  • Вам потрібно вибрати весь файл, якщо вам потрібно запустити весь файл.
  • Код продовжує працювати, навіть якщо трапляється помилка.

Але натомість ми отримуємо функцію, яка є кращою за IDLE (на мій погляд): можливість запускати ваш код по одному виділенню за раз.

Прочитайте про це тут .

Використання точок зупинку та оцінки виразу ( Alt- F8) (запропоновано Piga-fetta)

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

Використання Інструментів -> Запуск консолі Python (запропоновано Games Brainiac та kobejohn)

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


11

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

Тож дозвольте мені продемонструвати кілька знімків екрану:

1. Створення console.pyфайлу в кореневому каталозі

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

2. Відкриття консолі Python всередині PyCharm

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

3. Імпорт змінної з console.pyфайлу

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

І ось, ви успішно імпортували свою змінну.


2
ви маєте на увазі "вуаля"?
joaquin

3
Оскільки voilà - це французька, мені подобається додати, що альта означає зґвалтований.
christophe31

@ christophe31 Так. Вибачте, зміниться.
Games Brainiac

11

Залиште командний рядок відкритим після виконання

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

Змінити налаштування лише для поточного файлу

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

Щоб цю зміну застосувати до всіх ваших файлів .py (оскільки цей прапорець застосовується лише до поточного файлу, над яким ви працюєте), перейдіть до: Редагувати конфігурацію, у спливаючому вікні ви побачите дерево меню зліва, виберіть За замовчуванням , потім Python, а потім встановіть прапорець "Показати командний рядок", це зробить це налаштування за замовчуванням кожного разу, коли ви відкриєте файл .py (ця функція дійсно повинна бути включена за замовчуванням!)

Змінити налаштування для всіх файлів Python


1
Замість Show command line afterwardsопції заразRun with Python console
rovyko

6

Я знайшов найкращу відповідь у: Взаємодія з програмою після виконання

Цитуючи відповідь нижче:

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

З виводу python --help:

-i: інтерактивно перевіряти після запуску сценарію; примушує підказку, навіть якщо stdin, здається, не є терміналом; також ПІТОНІНСПЕКТ = х

Щоб встановити опцію інтерпретатора в PyCharm, перейдіть до пункту Виконати | Редагувати конфігурацію

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

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


Принаймні в 4.5.4 PyCharm пропонує опцію "Показати командний рядок згодом" у діалоговому вікні "Конфігурації набору / налагодження", яку я знайшов набагато кращою, ніж опція -i (стрілка вгору для останніх команд)
jan-glx,

4

Не згадано вище:

Якщо ви хочете використовувати змінну під час виконання, наприклад, коли ви встановлюєте точку зупинки, а потім експериментуєте із викликом функцій на об'єктах у поточній області дії, PyCharm має спливаюче вікно " Оцінити вираз (Alt-F8) ".

У цьому вікні ви можете викликати функції та переглянути вихідні дані. Завершення коду також працює. У цьому вікні також є "режим фрагмента коду", я просто досліджую, що це означає - чи можете ви визначити тут тимчасові функції ?.

(Я використовую PyCharm 3.0.1 Community Edition)


2

* оновлення

З вашого оновлення, я думаю, це запитання SO надає принаймні одну ідеальну відповідь .

Дозвольте написати це тут трохи більше, крок за кроком, ніж відповідь, яку я зв’язав.

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

* оригінал

У PyCharm 3.0 ви можете зробити наступне:

  • Інструменти -> Запустити консоль Python
  • Інструменти -> Відкрити термінал (з якого ви можете запустити python або зробити що завгодно)

Це те, що ви шукаєте? Якщо ні, спробуйте їх і дайте мені знати, чим це відрізняється від того, що ви хочете.


Спасибі за вашу відповідь. це не те, що я шукаю. Питання оновлено
user1941407

0

Подальша альтернатива - просто використовувати ту саму команду, яку використовує Spyder для "інтерактивного" запуску сценарію:

>>> runfile('myscript.py')

Потім ви можете відкрити дослідник змінних для інтерактивної консолі та повторно запустити сценарій, повторно виконавши наведену вище команду. Дуже схожий на робочий процес Spyder. Всі інші вищезазначені методи залишать вам інтерактивну підказку, але не можливість відкрити дослідник змінних, тому, якщо ви шукаєте такий тип функції, спробуйте вище.


0

На додаток до пропозиції, яку я зробив щодо відповіді Рамкінса , ви можете запустити файл безпосередньо за допомогою консолі, клацнувши правою кнопкою миші всередині файлу та вибравши Run File in Console.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.