2013-02-18 32 views
5

Po otwarciu zapisanego notatnika programu IPython muszę przetestować wszystkie komórki z importami, definicjami funkcji itp., Aby kontynuować pracę nad sesją. Aby to zrobić, wygodnie jest kliknąć Cell > Run All. Ale co, jeśli nie chcę ponownej oceny wszystkich obliczeń? Czy muszę wybierać komórki do oceny ręcznie za każdym razem?Czy Notes IPython ma "komórki inicjujące"?

W tym przypadku Mathematica ma koncepcję "komórek inicjalizujących". Możesz oznaczyć niektóre komórki w notatniku jako komórkę inicjalizującą, a następnie wykonać "ocenę komórek inicjalizujących" po otwarciu notatnika.

Czy notebook IPython ma podobne rozwiązanie?

+1

Ostatecznie w odpowiedzi na to pytanie, Rozszerzenie IPython Notebook zostało napisane w celu zapewnienia funkcji inicjalizacji komórki: http://nbviewer.ipython.org/github/Carreau/posts/blob/master/04-initialisation-cell.ipynb – rerx

+0

@rerx Czy możesz skomentować komentarz nswer? Niemal przegapiłem to rozszerzenie, ponieważ na początku nie zauważyłem Twojego komentarza. – cledoux

Odpowiedz

3

Po pierwsze, po otwarciu notesu IPython nie oznacza to utraty stanu jądra, , chyba że zrestartujesz serwer lub wyraźnie zatrzymasz jądro.

W przeciwnym razie nie ma komórki oznaczonej oznaczonej jako, ale w wersji dla programistów istnieje "uruchom do tego czasu".

Również jeśli używasz wersji dev, używając Cell Toolbar/metadanych i powiedziałbym ~ 30 linii javascript powinno być wykonalne.

Proponuję otworzyć prośbę o ulepszenie głównego trackera problemów. Zazwyczaj można to zrobić jako rozszerzenie podczas sprintu i/lub posta na blogu, aby wyjaśnić wewnętrzne aspekty notebooka.

+6

Podsumowując, odpowiedź brzmi, że IPython Notebook nie ma komórek inicjalizujących ani czegoś podobnego. Mam nadzieję, że pojawi się to w przyszłych wersjach. – clstaudt

+0

Mam zainstalowane [rozszerzenia notebooka] (https://github.com/ipython-contrib/IPython-notebook-extensions.git), a "Komórki inicjujące" to jedyne, które tydzień później nadal aktywowałem. .. Czy jest jakaś szansa, że ​​zostanie awansowany do funkcji w następnym wydaniu juwatera? – gboffi

+0

Nie, to rozszerzenie prawdopodobnie nie będzie częścią rdzenia. – Matt

1

Jeśli używasz najnowszego i największego notebooka (mój jest> 4.1), żądana funkcja jest dostępna przez rozszerzenie.

rozszerzeń, a także interfejs, który może być łatwo wykorzystane do włączenia/wyłączenia każdego indywidualnego rozszerzenia, można zainstalować w następujący sposób

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

Po zainstalowaniu rozszerzenia, uruchomić serwer notebook

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

i przejdź do strony zarządzania przedłużenie

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

W ostatnio otwartym oknie przeglądarki włącz rozszerzenie "Inicjowanie komórek".

Jeśli otworzysz teraz swój notatnik, na pasku narzędzi pojawi się nowa ikona, podobna do ręcznego kalkulatora, a w View/Cell Toolbar nowa pozycja, Initialisation Cell.

Włącz tę pozycję menu, a następnie kliknij na pasku narzędzi komórek, które z nich chcesz oznaczyć jako komórki inicjalizacji (ewentualnie usunąć komórki pasek narzędzi) i kliknąć na ikonę opisaną wcześniej ...

Podczas ładowania notebooka, komórki inicjalizacyjne są uruchamiane automatycznie, więc jeśli chcesz, możesz umieścić je w wygodnym miejscu, powiedz koniec notebooka, jeśli jesteś podobny do mnie ...