2015-03-18 27 views
6

Robię długotrwałe eksperymenty w laptopie IPython działającym na serwerze, gdzie typowy cykl roboczy to: uruchomienie eksperymentu, idź na lunch, wróć, sprawdź postęp , sprawdź Facebooka, sprawdź pocztę, sprawdź ponownie Facebooka, wyłącz komputer, wróć, sprawdź Facebooka, sprawdź postęp, ...IPython Notebook - Zachowaj drukowanie na wyjściu notebooka po zamknięciu przeglądarki

Problem polega na tym, że po zamknięciu okna przeglądarki, w którym działa notebook, wydruk/wyniki logowania nie są już zapisywane w notatniku.

Na przykład w moim prostym eksperymencie:

import time 
start_time = time.time() 
for i in xrange(5): 
    print '%s seconds have passed' % (time.time()-start_time) 
    time.sleep(2) 
print 'Done!' 

Jeśli biegnę, zamknij kartę i wrócić 10 sekund później, po prostu zobaczyć, co wyjście było, gdy notebook został ostatnio zapisany. Co ja się spodziewać jest:

0.000111818313599 seconds have passed 
2.00515794754 seconds have passed 
4.01105999947 seconds have passed 
6.0162498951 seconds have passed 
8.01735782623 seconds have passed 
Done! 

Przypuszczalnie ta zostanie ustalona w pewnym momencie w przyszłości, ale w tym czasie jest jakiś łatwy Hack, aby kontynuować drukowanie do wyjścia notebooka po zamknięciu przeglądarki? Punkty premiowe, jeśli działa dla obrazów śródliniowych.

Odpowiedz

2

Cóż, znalazłem rozwiązanie w porządku. Rozwiązanie jest w tym pliku: https://github.com/QUVA-Lab/artemis/blob/master/artemis/fileman/persistent_print.py

z przykładem użycia: https://github.com/QUVA-Lab/artemis/blob/master/artemis/fileman/test_persistent_print.py

Demo teraz wygląda:

import time 
from general.persistent_print import capture_print, reprint 
capture_print() 
start_time = time.time() 
for i in xrange(5): 
    print '%s seconds have passed' % (time.time()-start_time) 
    time.sleep(2) 
print 'Done!' 

A jeśli biegnę

reprint() 

W następnej komórki , wyświetli wszystkie instrukcje drukowania wprowadzone od capture_print. Oczywiście byłoby lepiej, gdyby to było niepotrzebne, ale działa na razie.

+0

Kod już nie istnieje. – Poik

+0

Naprawiono zepsuty link, dzięki. – Peter

Powiązane problemy