Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Save session in IPython like in MATLAB?

Tags:

It would be useful to save the session variables which could be loaded easily into memory at a later stage.

like image 379
Navneet Avatar asked Sep 20 '12 01:09

Navneet


1 Answers

In [23]: %logstart /tmp/session.log Activating auto-logging. Current session state plus future input saved. Filename       : /tmp/session.log Mode           : backup Output logging : False Raw input log  : False Timestamping   : False State          : active  In [24]: x = 1  In [25]: %logstop  In [26]: quit() Do you really want to exit ([y]/n)? y 

Then we can restore the session with:

% ipython -log /tmp/session.log  Activating auto-logging. Current session state plus future input saved. Filename       : ipython_log.py ...  In [1]: x Out[1]: 1 

For more on "Session logging and restoring" see the docs.

Note that this merely stores the commands run by IPython. It does not save the state of the IPython session. Restoring the session requires re-execution of the commands.


If you set the PYTHONSTARTUP environment variable to point at a file called, say, startup.py:

PYTHONSTARTUP=/path/to/startup.py 

then put the following in /path/to/startup.py:

try:     # https://stackoverflow.com/a/5377051/190597 (Tom Dunham)     __IPYTHON__ except NameError:     pass else:     # https://stackoverflow.com/a/15898875/190597 (user2261139)     from IPython import get_ipython     ipython = get_ipython()     ipython.magic("%logstart /tmp/session.log") 

then IPython will call %logstart automatically whenever you start an interactive session.

like image 140
unutbu Avatar answered Oct 22 '22 16:10

unutbu