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ą?
8 answers
Wbudowana powłoka Pythona dla bieżącej sesji debugowania
- 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...).
- 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).
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 Uruchom → Oceń 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.
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ź.
Podpowiedź będzie zawierać kliknięcie ikony spowoduje otwarcie inspektora w wyskakującym okienku.
Dla zmiennych w zakresie Inspektor jest pokazany w dolnym panelu pod Debug > Debugger .
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.
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
2. Otwieranie konsoli Pythona wewnątrz PyCharm
3. Import zmiennej z pliku console.py
I tam zaimportowałeś swoją zmienną z powodzeniem.
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ń".
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!)
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.
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)
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żyjimport myscript as m
- (może być konieczne uruchomienie
main()
, Jeśli masz blokif __name__ == '__main__'
) - jak w twoim pytaniu,
a
jest dostępny wmyscript.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)
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.
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