Czy istnieje sposób, aby programowo zmusić skrypt Pythona do przejścia do REPL w dowolnym momencie jego wykonywania, nawet jeśli skrypt został uruchomiony z wiersza poleceń?
Piszę szybki i brudny program do drukowania, który chcę odczytać dane ze standardowego wejścia lub pliku, wykreślić go, a następnie upuścić w REPL, aby umożliwić dostosowanie wykresu.
python
interactive
dsimcha
źródło
źródło
Często używam tego:
źródło
pdb
możesz użyćinteract
.Oto, jak powinieneś to zrobić (IPython> v0.11):
Dla IPythona <= v0.11:
Powinieneś użyć IPythona, czyli REPL Cadillaca z Pythona. Zobacz http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython
Z dokumentacji:
źródło
Aby skorzystać z iPythona i funkcjonalności debuggera należy użyć ipdb ,
Możesz go używać w taki sam sposób jak pdb, z dodatkiem:
źródło
Możesz uruchomić debugger:
Nie jestem pewien, do czego chcesz REPL, ale debugger jest bardzo podobny.
źródło
Właśnie zrobiłem to w jednym z moich własnych skryptów (działa w ramach automatyzacji, która jest ogromnym instrumentem PITA):
Po prostu umieść to w dowolnym miejscu punktu przerwania i możesz sprawdzić stan przy użyciu tej samej składni, co interpreter języka Python (chociaż wydaje się, że nie pozwala na importowanie modułów). Nie jest zbyt elegancki, ale nie wymaga innej konfiguracji.
źródło