Where is the history file for ipython
Asked Answered
G

2

55

I can not determine where the ipython is storing its history.

a. There is no ~/.pythonhistory:

12:49:00/dashboards $ll ~/.py*
ls: /Users/steve/.py*: No such file or directory

b. Nothing special in the python startup file:

12:49:07/dashboards $echo $PYTHONSTARTUP
/shared/.pythonstartup
12:49:43/dashboards $cat /shared/.pythonstartup
import rlcompleter
import readline

readline.parse_and_bind("tab: complete")

c. BUT: i do have plenty of history available in ipython when I start it up.

So where is that history being stored?

UPDATE the answer from @Stefano led the correct way: here is the actual path

13:30:05/shared $ll ~/.ipython/profile_default/history.sqlite
-rw-r--r--  1 steve  staff  372736 Jun  3 12:48 /Users/steve/.ipython/profile_default/history.sqlite
Gorgeous answered 3/6, 2015 at 19:52 Comment(0)
S
52

IPython history is stored in a SQLite database located in the profile directory. By default:

~/.ipython/profile_default/history.sqlite

Older versions (1.x) stored profile data in ~/.config/ipython, at least on platforms conforming to XDG basedir specs (i.e. most Linux distributions).

Anyway, you can locate the profile directory with:

$ ipython locate profile default

Notice that the history database is shared between IPython and IPython3, if both are installed.

Stringy answered 3/6, 2015 at 19:56 Comment(2)
Additionally, the table name is history. This would allow you for instance to search this database using sqlite3.Fox
How to set the location of this file separate from profile?Borman
S
69

If you want your IPython history in a plain-text file, you can export it yourself.

%history -g -f filename 
Seaborg answered 9/9, 2016 at 15:38 Comment(2)
I find no -g works well for me, too. What does -g do?Tootsie
Without -g it exports the history for the current session. With -g it exports history for all sessions. The only documentation I found for -g is by typing %quickref in to an IPython shell.Seaborg
S
52

IPython history is stored in a SQLite database located in the profile directory. By default:

~/.ipython/profile_default/history.sqlite

Older versions (1.x) stored profile data in ~/.config/ipython, at least on platforms conforming to XDG basedir specs (i.e. most Linux distributions).

Anyway, you can locate the profile directory with:

$ ipython locate profile default

Notice that the history database is shared between IPython and IPython3, if both are installed.

Stringy answered 3/6, 2015 at 19:56 Comment(2)
Additionally, the table name is history. This would allow you for instance to search this database using sqlite3.Fox
How to set the location of this file separate from profile?Borman

© 2022 - 2024 — McMap. All rights reserved.