interaktywne Debugowanie powłoki za pomocą pycharm

Jestem nowy w PyCharm. Używam bezczynności przez długi czas.

Bardzo wygodne jest używanie obiektów Pythona po wykonaniu skryptu w trybie bezczynności. Czy jest jakiś sposób na użycie obiektów skryptowych po jego wykonaniu z interaktywną powłoką Pythona przy użyciu PyCharm?

Na przykład mamy projekt 'test' z jednym plikiem 'test.py": {]}

a = '123'
print a

Po wykonaniu możemy otrzymać wynik:

123
Process finished with exit code 0

Jak mogę użyć string 'a' z interaktywną powłoką?

Author: Phillip, 2013-10-12

8 answers

Wbudowana powłoka Pythona dla bieżącej sesji debugowania

  1. Ustaw punkt przerwania w linii interesującej Twój kod (tj. klikając rynnę) i uruchom Debugowanie (kliknij prawym przyciskiem myszy w edytorze, a następnie wybierz Debug myfile.py...).
  2. Po osiągnięciu punktu przerwania zlokalizuj debugowanie > konsola Zakładka, a następnie kliknij na Pokaż wiersz poleceń ikona (zobacz zrzut ekranu).

To włączy powłokę Pythona (zwróć uwagę na zielony >>> na zrzucie ekranu), gdzie możesz uzyskać dostęp do wszystkich zmiennych w bieżącym zakresie i zrobić wszystko, co zwykle robisz w powłoce Pythona.

W ostatnich wersjach pycharm dostajesz pełny interpreter ipython zamiast zwykłej powłoki Pythona(jeśli IPython jest zainstalowany).

Włączanie powłoki Pythona dla debugowanej aplikacji

The Evaluate expression window

Jako wygodniejsza alternatywa, jeśli potrzebujesz tylko sprawdzić niektóre zmienne, dostęp do członków lub metody wywołania na obiekt w zakresie, po osiągnięciu punktu przerwania wybierz wyrażenie w bieżącym zakresie, kliknij prawym przyciskiem myszy - > Oceń wyrażenie (lub użyj skrótu pokazanego w menu pod UruchomOceń wyrażenie...), edytować w razie potrzeby - możesz wpisać dowolne wyrażenie Pythona z dostępnym autouzupełnianiem - a następnie nacisnąć Enter (lub kliknij Oceń) aby sprawdzić wynik.

Obsługiwane są wyrażenia Wielowierszowe i Wielowierszowe: aby uzyskać wielowierszową wersję okna dialogowego Inspect, kliknij tryb fragmentacji kodu lub wybierz Więcej niż jeden wiersz kodu w edytorze, a następnie oceń wyrażenie. Możesz przypisać wartości do istniejących zmiennych (nowych nie można zdefiniować) i uruchomić całe fragmenty kodu. Kontrola zmiennych w bieżącym zakresie

Kursor myszy nad zmiennymi

Aby zobaczyć wartość zmiennej po naciśnięciu punktu przerwania w trybie debugowania, najedź kursorem myszy na zmienną (1-2 sekundy), a wartość zostanie wyświetlona w podpowiedź.

Tutaj wpisz opis obrazka

Podpowiedź będzie zawierać kliknięcie ikony spowoduje otwarcie inspektora w wyskakującym okienku.

Tutaj wpisz opis obrazka

Dla zmiennych w zakresie Inspektor jest pokazany w dolnym panelu pod Debug > Debugger .

 99
Author: ccpizza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 22:22:12

Znalazłem poprzednie odpowiedzi od Piga-fetta, Games Brainiac i kobejohn przydatne, ale nie satysfakcjonujące. Więc tutaj podaję trzecią opcję:

Wczytywanie wybranego kodu do konsoli (moja sugestia)

Użyj Shift + Alt + E aby załadować wybrany kod lub linię, w której kursor jest umieszczony w konsoli i natychmiast go uruchomić. To również ma pewne wady:

  • musisz wybrać cały plik, jeśli chcesz uruchomić cały plik.
  • kod działa, nawet jeśli napotka błąd.

Ale w zamian otrzymujemy cechę, która jest lepsza niż bezczynność (moim zdaniem): możliwość uruchamiania kodu po jednym zaznaczeniu na raz.

Przeczytaj o tym tutaj .

Używanie punktów przerwania i wyrażenia ewaluacji (Alt-F8) (zasugerował: Piga-fetta)

Jest to bardzo przydatne w dużych aplikacjach, gdzie musimy debugować w niektóre miejsca w kodzie, ale nie tak przydatne do interaktywnego kodowania. Więc nie tego chcemy.

Korzystanie z narzędzi -- > uruchom konsolę Pythona (sugerowana przez Games Brainiac i kobejohn)

To jest want, którego chcemy, ale jest to nieco uciążliwe, zwłaszcza jeśli moduł, który chcemy uruchomić, nie znajduje się w katalogu głównym projektu.

 18
Author: elgehelge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-30 11:32:44

Możesz po prostu użyć konsoli Pythona w PyCharm 2 i PyCharm 3. I możesz po prostu zaimportować, ponieważ twój root projektu jest już dodany do twojego PYTHONPATH:

Więc pozwól, że zademonstruję przez kilka zrzutów ekranu:

1. Tworzenie pliku console.py w katalogu głównym

Tutaj wpisz opis obrazka

2. Otwieranie konsoli Pythona wewnątrz PyCharm

Tutaj wpisz opis obrazka

3. Import zmiennej z pliku console.py

Tutaj wpisz opis obrazka

I tam zaimportowałeś swoją zmienną z powodzeniem.

 9
Author: Games Brainiac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-12 03:54:43

Pozostaw otwarty wiersz poleceń po wykonaniu

Dla każdego, kto nadal ma ten problem: przejdź do menu Uruchom/Debuguj, wybierz Edytuj konfigurację, zaznacz pole "Pokaż wiersz poleceń".

Zmień ustawienie tylko dla bieżącego pliku

Konfiguracja globalna

Aby zmiana ta miała zastosowanie do wszystkich plików .py (ponieważ to pole dotyczy tylko bieżącego pliku, nad którym pracujesz) przejdź do: Edytuj konfigurację, w wyskakującym okienku zobaczysz drzewo menu po lewej stronie, Wybierz domyślne, a następnie Python, a następnie zaznacz pole "Pokaż wiersz poleceń", co sprawi, że będzie to domyślne ustawienie za każdym razem, gdy otworzysz plik. py, (ta funkcja powinna być domyślnie włączona!)

Zmiana ustawień dla wszystkich plików Pythona

 8
Author: Rampkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-30 12:16:58

Znalazłem najlepszą odpowiedź w: interakcja z programem po wykonaniu

Cytując odpowiedź poniżej:

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

Z wyjścia Pythona -- help:

-i: sprawdzaj interaktywnie po uruchomieniu skryptu; wymusza znak zachęty, nawet jeśli stdin nie wydaje się być terminalem; także PYTHONINSPECT=x

Aby ustawić opcję interpretera w PyCharm przejdź do Run|Edit Konfiguracja

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

Próbowałem i działa - po prostu użyj "- i "(bez cudzysłowów) jako"opcji interpretera". Zauważ, że jeśli zmienisz tylko domyślne wartości w konfiguracjach Run/Debug, może to nie być natychmiastowe dla skryptów, które już wcześniej uruchomiłeś; będziesz musiał edytować konfiguracje tych skryptów jeden po drugim.

 6
Author: user3308189,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:27

Nie wymienione powyżej:

Jeśli chcesz użyć zmiennej podczas wykonywania, np. gdy ustawiasz punkt przerwania, a następnie eksperymentujesz z wywołaniem funkcji na obiektach w bieżącym zakresie, PyCharm ma wyskakujące okno ' Evaluate Expression (Alt-F8)'.

W tym oknie możesz wywołać funkcje i zobaczyć wyjście. Działa również uzupełnianie kodu. To okno ma również "tryb fragment kodu", tylko sprawdzam co to znaczy - czy można zdefiniować funkcje tymczasowe tutaj?.

(używam PyCharm 3.0.1 Community Edition)

 4
Author: Piga-fetta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-05 02:19:39

*update

Z Twojej aktualizacji myślę, że to pytanie dostarcza przynajmniej jednej doskonałej odpowiedzi .

Napiszę to tutaj trochę bardziej krok po kroku niż odpowiedź, którą podlinkowałem.

  • Narzędzia -- > Uruchom Konsolę Pythona
  • Importuj skrypt import myscript (bez .py) (jeśli chcesz mieć krótką nazwę, użyj import myscript as m
  • (może być konieczne uruchomienie main(), Jeśli masz blok if __name__ == '__main__')
  • jak w twoim pytaniu, a jest dostępny w myscript.a
  • Jeśli chcesz, uruchom skrypt jeszcze raz za pomocą myscript = reload(myscript)

* original

W PyCharm 3.0 możesz wykonać następujące czynności:

  • Narzędzia -- > Uruchom Konsolę Pythona
  • narzędzia -- > Otwórz Terminal (z którego możesz uruchomić Pythona lub zrobić cokolwiek innego)
Tego szukasz? Jeśli nie, spróbuj ich i daj mi znać, jak to różni się od tego, co chcesz.
 2
Author: KobeJohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:09

Kolejną alternatywą jest użycie tej samej komendy, której używa Spyder do" interaktywnego " uruchomienia skryptu:

>>> runfile('myscript.py')

Następnie możesz otworzyć Eksplorator zmiennych dla konsoli interaktywnej i ponownie uruchomić skrypt, uruchamiając powyższe polecenie ponownie. Bardzo podobny do Spyder workflow. Wszystkie inne powyższe metody pozostawią Ci interaktywny monit konsoli, ale nie opcję otwarcia Eksploratora zmiennych, więc jeśli szukasz tego rodzaju funkcji, spróbuj powyższych.

 0
Author: arkore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-25 12:00:44