Reputation: 22448
When I open a saved IPython Notebook, I need to evaluate all the cells with imports, function definitions etc. to continue working on the session. It is convenient to click Cell > Run All
to do this. But what If I do not want to re-evaluate all calculations? Do I need to pick the cells to evaluate by hand each time?
For this problem, Mathematica has the concept of "initialization cells". You can mark some cells in the notebook as initialization cell, and then perform "evaluate initialization cells" after opening the notebook.
Does the IPython Notebook have a similar solution?
Upvotes: 10
Views: 4568
Reputation: 25043
If you're using the latest and greatest of the notebooks (mine is > 4.1), the feature you requested is available through an extension.
The extensions, as well as an interface that can be conveniently used to enable/disable each individual extension, can be installed as follows
$ git clone https://github.com/ipython-contrib/IPython-notebook-extensions.git
$ cd IPython-notebook-extensions
$ ./setup.py
When you have installed the extension, start the notebook server
$ cd ; jupyter-notebook < /dev/null > .jupyter.log 2>&1 &
and go to the extension management page
$ xdg-open http://localhost:8888/nbextensions
In the recently opened browser window, enable the "Initialization cells" extension.
If you open now a notebook of yours, in the toolbar you will see a new icon, similar to a hand-held calculator and in the View/Cell Toolbar
a new entry, Initialisation Cell
.
Enable this menu entry and click on the cells' toolbar which ones you want to mark as an initialization cell (possibly remove the cells' toolbar) and click on the icon previously described...
When you load a notebook, the initialization cells are automatically run, so that if you want you can place them in a convenient place, say the end of the notebook if you're like me...
Upvotes: 2
Reputation: 27843
First, when you open an IPython notebook, this does not mean the state of the kernel is lost, unless you restarted the server or explicitly stop the kernel.
Otherwise, there are no marked cell, but there is a "run until here" on dev version.
Also if you are using dev version, using Cell Toolbar /metadata and I would say ~30 line of javascript it should be doable.
I suggest you open an enhancement request on main issue tracker. This could typically be made as an extension during a sprint and/or a blog post to explain internal of notebook.
Upvotes: 4