2013-04-23 13 views
13

Czy można uruchomić kilka długich zadań w programie Notes IPython, zamknąć przeglądarkę, a następnie po pewnym czasie otworzyć ją ponownie i ujawnić wyniki tych zadań?Uruchamianie niektórych zadań w programie Notes IPython w trybie odłączonym

Say, zadanie tak:

def f(): 
    import time 
    time.sleep(100) 
    with open("result.txt", "w") as fh: 
     fh.write("Done.") 

Jeśli uruchomić zadanie normalnie, a bliskie przeglądarkę przed zakończeniem, jak otworzyć go z powrotem, nie widzę 'result.txt'.

Jeśli uruchomię go za pomocą magicznego lub równoległego wykonania przy użyciu %px - ponownie brak wyniku, jeśli zamknę przeglądarkę przed zakończeniem.

Jakieś rozszerzenia lub hacki dostępne? Czy może czegoś brakuje?

UPDATE 1:

Chociaż istnieje background jobs control support in IPython, Praca tła stają się nieaktualne po odłączeniu przeglądarkę. Jedyne co mogłem wymyślić jest wydawanie %connect_info przed przeglądarce zamknięcia, a następnie połączyć z zaciskiem ekranu za pomocą

ipython console --existing <ID>.json 

i uruchomić moje pracy stamtąd.

UPDATE 2:

Jeszcze bardziej pomocny Hack jest kombinacją ipython console i kontroli pracy. To znaczy. Otwieram konsolę i dołączam do tej samej sesji podczas uruchamiania pracy w tle w przeglądarce, a następnie mogę ją zamknąć aż do zakończenia zadania.

UPDATE 3:

wydaje się działać od wersji ipython 1.0dev bez żadnych hacków. po prostu uruchamiasz to, co chcesz, zamykasz przeglądarkę i nadal działa.

Odpowiedz

2

Zwykle używam ekranu poleceń Linuksa, który otwiera inną powłokę, która może działać w tle.

Na przykład, po pierwszym wpisaniu powłoki wpisujesz "screen". Następnie daje nowy terminal. Uruchom ipython za pomocą powyższego polecenia. Po uruchomieniu naciśnij klawisze CTRL + CTRL + D. Program zaczyna działać w tle i można zamknąć terminal. Jeśli chcesz do niego wrócić, wpisz "screen -r" w linii poleceń.

+0

Stephan, może nie było jasne, ale pytam o notebook iPython - który jest konsolą opartą na przeglądarce. I nie znalazłem sposobu, aby korzystać z przeglądarek konsolowych, aby uzyskać dostęp do iPython z poziomu ekranu. – Anaderi

+0

Moja zła. Nie jest to jednak żadna wskazówka. – Stephan

1

Nie wiem, czy to jest nowe w IPython 1.0, ale w moim notebooku IPython, jeśli zadzwonię do twojej funkcji f(), i zamknę przeglądarkę, jądro działa w tle i po chwili (zmieniłem na time.sleep(10)) Widzę wygenerowany plik results.txt. Nie sądzę, aby jądro, które zwykle uruchamiasz w konsoli, zatrzymuje się po zamknięciu okna przeglądarki. Daj mi znać, jeśli się mylę.

+0

rzeczywiście wydaje się działać w IPython od 1.0dev – Anaderi

Powiązane problemy