2013-02-18 20 views
5

Quando apro un notebook IPython salvato, devo valutare tutte le celle con importazioni, definizioni di funzioni ecc. Per continuare a lavorare sulla sessione. È conveniente fare clic su Cell > Run All per farlo. Ma cosa succede se non voglio rivalutare tutti i calcoli? Devo scegliere le celle per valutarle a mano ogni volta?Il blocco note di IPython ha "celle di inizializzazione"?

Per questo problema, Mathematica ha il concetto di "celle di inizializzazione". È possibile contrassegnare alcune celle nel blocco note come cella di inizializzazione e quindi eseguire "valuta celle di inizializzazione" dopo aver aperto il blocco note.

Il notebook IPython ha una soluzione simile?

+1

In definitiva in risposta a questa domanda, un L'estensione di IPython Notebook è stata scritta per fornire la funzionalità di inizializzazione delle celle: http://nbviewer.ipython.org/github/Carreau/posts/blob/master/04-initialisation-cell.ipynb – rerx

+0

@rerx Puoi rendere il tuo commento un nswer? Ho quasi perso questa estensione perché inizialmente non ho notato il tuo commento. – cledoux

risposta

3

Per prima cosa, quando si apre un blocco appunti IPython, ciò non significa che lo stato del kernel è stato perso, a meno che non si riavvii il server o si fermi esplicitamente il kernel.

Altrimenti, non ci sono contrassegnati con cella, ma c'è una "esecuzione fino a qui" sulla versione dev.

Anche se si sta utilizzando la versione di sviluppo, utilizzando la barra degli strumenti di cella/metadati e direi ~ 30 linea di javascript dovrebbe essere fattibile.

Suggerisco di aprire una richiesta di miglioramento sul tracker principale. In genere ciò può essere fatto come estensione durante uno sprint e/o un post sul blog per spiegare l'interno del notebook.

+6

Quindi, in conclusione, la risposta è che IPython Notebook non ha celle di inizializzazione o qualcosa di equivalente. Spero che questo apparirà nelle versioni future. – clstaudt

+0

Ho installato le [estensioni per notebook] (https://github.com/ipython-contrib/IPython-notebook-extensions.git) e "Le celle di inizializzazione" è l'unica che, una settimana dopo, ho ancora attivato. .. C'è qualche possibilità che sarà promosso a una funzione in una prossima versione di jupyter? – gboffi

+0

No, questa estensione non è probabile che faccia parte del nucleo. – Matt

1

Se si utilizza il più recente e più grande dei notebook (il mio è> 4.1), la funzione richiesta è disponibile tramite un'estensione.

Le estensioni, così come un'interfaccia che può essere utilizzato comodamente per abilitare/disabilitare ogni singola estensione, può essere installato come segue

$ git clone https://github.com/ipython-contrib/IPython-notebook-extensions.git 
$ cd IPython-notebook-extensions 
$ ./setup.py 

Dopo aver installato l'estensione, avviare il server notebook

$ cd ; jupyter-notebook </dev/null> .jupiter.log 2>&1 & 

e andare alla pagina di gestione estensione

$ xdg-open http://localhost:8888/nbextensions 

Nella finestra del browser aperta di recente, abilitare l'estensione "Celle di inizializzazione".

Se apri ora un tuo blocco note, nella barra degli strumenti verrà visualizzata una nuova icona, simile a un calcolatore manuale e nella View/Cell Toolbar una nuova voce, Initialisation Cell.

Attivare questa voce di menu e fare clic sulla barra degli strumenti di cellule che quelli che si desidera contrassegnare come una cella di inizializzazione (eventualmente rimuovere le cellule barra degli strumenti) e cliccare sull'icona descritto in precedenza ...

Quando si carica un notebook, le celle di inizializzazione vengono automaticamente eseguite, così se vuoi puoi metterle in un posto conveniente, diciamo la fine del notebook se sei come me ...